2012-11-04 28 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