0
在其他地方的討論中,有人提出可能有平臺上的互斥鎖可以從鎖定它的線程之外解鎖。是否有任何互斥體實現允許從一個線程鎖定並在另一個線程中解鎖
我不確定,但我的經驗僅限於平臺,這是永遠不允許的;有沒有允許它的平臺?
如果有,那麼如何可能利用這樣的設施?如果你不能再假設一個互斥體在LOCK和UNLOCK步驟之間保持鎖定狀態,這在我看來擊敗了這一點。是否有必須完成的情景,並且可以安全地小心處理?
在其他地方的討論中,有人提出可能有平臺上的互斥鎖可以從鎖定它的線程之外解鎖。是否有任何互斥體實現允許從一個線程鎖定並在另一個線程中解鎖
我不確定,但我的經驗僅限於平臺,這是永遠不允許的;有沒有允許它的平臺?
如果有,那麼如何可能利用這樣的設施?如果你不能再假設一個互斥體在LOCK和UNLOCK步驟之間保持鎖定狀態,這在我看來擊敗了這一點。是否有必須完成的情景,並且可以安全地小心處理?
嚴格來說,沒有像這樣的線程之間沒有共享的互斥體。因爲這會破壞互斥體的目的。如果這是你真正想要的東西,那麼你可以使用Semaphore(1)
。信號量允許非獲取線程釋放獲取的計數。
在我看來,如果這是允許的,那麼這不再是一個互斥體,而是別的東西,正如你所說的那樣,它破壞了機制的目的,使其無用。 –
具有線程親和力的互斥體是非常重要的。如果你想在另一個線程中解鎖,你只是使用了錯誤的同步原語。每個平臺都實現另一個沒有親和力,信號量的平臺。 –