2017-05-28 55 views
0

我正在解決有關線程的分配問題。 這是關於排序隨機小寫字符。 當它排序良好時,我打印出O標記和否,使用2個線程打印出X. 。如何在這個C代碼中使用Semaphore關於多線程

我需要使用信號量編寫代碼,但我不知道如何以及在哪裏編寫sempahore。

所以一旦我沒有信號寫代碼。 我現在應該添加Sempahore。但我不知道要修復哪個部分。

你能幫我嗎? 我是否必須爲信號燈製作更多功能?

這是我在C.

+0

一個int_array,兩個線程:( – ThingyWotsit

+0

爲什麼在排序中有一個nanosleep()? – ThingyWotsit

+0

我不明白你的意思,然後我不能使用信號量嗎?你能解釋更多關於它的細節嗎? – Codingdumb

回答

1

代碼ThingyWotsit說,做回你的教授。

對於信號量,想象它的概念像一扇門。

  • 上述sem_post()將由1.
  • sem_wait()增加信號量的計數器將允許一個線程通道和由1遞減計數器;
  • 但是,如果在sem_wait()之後計數器達到0,則任何其他sem_wait()都將暫停該線程,關閉該門,直到sem_post> 1

我希望能在你的努力中幫助你。