我可以将基于futex的互斥体与glibc-2.2 linuxthreads互斥体混合使用吗?

时间:2010-02-10 18:01:51

标签: pthreads mutex glibc futex

如果您不知道什么是futex和linuxthreads-0.9,请不要回复。

我可以将一个基于互斥锁的互斥锁程序与来自linuxthreads-0.8或-0.9(在所有glibc< = 2.2和所有uClibc中使用)的互斥锁混合使用吗?

我需要进程间互斥(pshared one,PTHREAD_PROCESS_SHARED)。

那么,如果线程由linuxthreads pthread_manager启动和管理,它会被基于futex的睡眠和唤醒混淆吗?

我是否可以将基于futex的互斥锁用于进程间和线程间同步?

1 个答案:

答案 0 :(得分:2)

我不明白为什么你不能。

显然,你将无法使用pthreads。你可能会使用带有旧互斥锁的pthread库,你需要在其他库中使用futex代码。

你显然无法锁定linuxthreads互斥锁并使用futex函数解锁它,这将无法正常工作。

但是如果内核中有一个线程在futex上被阻塞,我看不出它与磁盘I / O操作被阻塞有什么不同,而linuxthreads处理得很好。