2017-06-04 62 views
0

Linux信號量和互斥量的區別在於,互斥量可以由鎖定它的線程解鎖。但是,那麼一個線程鎖定和另一個線程鎖定的用例是什麼?一個線程符合信號量和另一個線程釋放它的有效用例是什麼?

+1

當同步線程需要除「critical section」**以外的其他**時,會使用此類使用情況(信號量被一個線程鎖定,但從其他線程鎖定)。問題「給我一個例子」非常適合堆棧溢出,因爲他們有*許多可能的答案*沒有「更好的一個」標準。 – Tsyvarev

+0

看看https://stackoverflow.com/questions/44129299/syncronizing-2-threads-c-linux/44131518#44131518 – kjohri

+0

是的,一個信號量可以(AB)作爲一種鎖,但通常它們不是它們的預期的目的 - 它們更多用於調節對有限資源的訪問,而不是提供互斥語義。 – twalberg

回答

0

它允許線程或進程一次訪問特定的同步節,直到信號值變爲0. 編程用例: 這不是生產者 - 用戶場景中使用信號量的方式。標準解決方案是使用兩個計數信號量,一個用於空槽(初始化爲可用槽數),另一個用於填充槽(初始化爲0)。

相關問題