【问题标题】:How can I manage threads using semaphores?如何使用信号量管理线程?
【发布时间】:2013-08-09 11:17:13
【问题描述】:

假设我们有两个线程。一个打印“Hello”,另一个打印“World”。我们必须以这样一种方式管理线程,即我们的程序应该打印五次“Hello World”。 谁能建议我这样做的代码或伪代码? 提前致谢。

【问题讨论】:

  • 阅读好pthread tutorial。不要指望我们做你的功课,因为你没有显示任何你尝试过的代码。

标签: multithreading synchronisation


【解决方案1】:

我得到了答案。我使用了两个二进制信号量,每个函数一个。让两个信号量分别为第一和第二。最初,first = 1 & second = 0。选择这些值是因为我们希望互斥且没有死锁。算法:

printHello()
{
    wait(first)
    print "Hello"
    signal(second)
}

printWorld()
{
    wait(second)
    print " World"
    signal(first)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    相关资源
    最近更新 更多