如何在这个关于多线程的C代码中使用Semaphore

时间:2017-05-28 09:17:11

标签: c multithreading pthreads semaphore

我正在解决有关线程的分配问题。 这是关于排序随机小写字符。 当它排序好的时候,我打印出O标记与否,打印出X. 使用2个线程。

我需要使用信号量编写代码,但我不知道如何以及在哪里编写sempahore。

所以一旦我编写了没有信号量的代码。 我现在应该加上Sempahore。但我不知道要修复哪个部分。

你可以帮帮我吗? 我是否还要为信号量增加一个功能?

这是我在C中的代码。

1 个答案:

答案 0 :(得分:1)

正如ThingyWotsit所说,请回到你的教授身边。

对于信号量,请将其概念视为门。

  • 上述sem_post()会将信号量的计数器增加1。
  • sem_wait()将允许线程通过并将计数器减1;
  • 但是,如果在sem_wait()计数器达到0之后,任何其他sem_wait()将停止该线程,关闭门,直到sem_post> 1

我希望这有助于你的努力。