如果您不知道什么是futex和linuxthreads-0.9,请不要回复。
我可以将一个基于互斥锁的互斥锁程序与来自linuxthreads-0.8或-0.9(在所有glibc< = 2.2和所有uClibc中使用)的互斥锁混合使用吗?
我需要进程间互斥(pshared one,PTHREAD_PROCESS_SHARED)。
那么,如果线程由linuxthreads pthread_manager启动和管理,它会被基于futex的睡眠和唤醒混淆吗?
我是否可以将基于futex的互斥锁用于进程间和线程间同步?
答案 0 :(得分:2)
我不明白为什么你不能。
显然,你将无法使用pthreads。你可能会使用带有旧互斥锁的pthread库,你需要在其他库中使用futex代码。
你显然无法锁定linuxthreads互斥锁并使用futex函数解锁它,这将无法正常工作。
但是如果内核中有一个线程在futex上被阻塞,我看不出它与磁盘I / O操作被阻塞有什么不同,而linuxthreads处理得很好。