我如何在这个关于多线程的 C 代码中使用信号量

How can I use Semaphore in this C code about multithreading

我正在解决关于线程的赋值问题。 这是关于对随机小写字符进行排序的。 当它排序好时,我打印出 O 标记,或者不打印出 X。 使用 2 个线程。

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

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

你能帮帮我吗? 我是否必须为信号量再创建一个函数?

这是我在 C 中的代码。

正如 ThingyWotsit 所说,一定要回到你的教授那里。

对于信号量,可以把它的概念想象成一个门。

  • 前面提到的sem_post()将使信号量的计数器增加1。
  • sem_wait() 将允许线程通过并将计数器减 1;
  • 然而,如果在 sem_wait() 计数器达到 0 后,任何其他 sem_wait() 将停止线程,关闭门直到 sem_post> 1

希望对你有所帮助。