2012-11-04 54 views
2

我的意思是某種僞代碼顯示瞭如何使用內核原語(互斥鎖,等待隊列等)實現條件變量操作(信號,等待)。pthreads在Linux中如何實現條件變量?

+5

爲什麼不直接查看libc中的_real_代碼? –

+0

你可能喜歡在這裏挖掘:http://www.eglibc.org/cgi-bin/viewvc.cgi/trunk/libc/nptl/ – alk

+0

有超過*一個* pthreads庫的Linux,這可以是相關的,如果你不是x86和/或GNU libC中心。 – sawdust

回答

0

問題有些模糊:等待隊列是內部Linux內核機制,它們不會導出到用戶空間。用戶空間條件變量由基於futexes的libc實現。

在Linux內核中沒有條件變量接口實現,但很容易創建一個接口,例如參見http://www.geocities.ws/nikitadanilov/code/kcond.c