【问题标题】:Can I mix futex-based mutexes with glibc-2.2 linuxthreads mutexes?我可以将基于 futex 的互斥锁与 glibc-2.2 linuxthreads 互斥锁混合使用吗?
【发布时间】:2011-01-15 09:38:02
【问题描述】:

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

我可以将基于 futex 的互斥锁与来自 linuxthreads-0.8 或 -0.9 的互斥锁(在所有 glibc

我需要进程间互斥锁(pshared 之一,PTHREAD_PROCESS_SHARED)。

那么,如果线程是由linuxthreads pthread_manager来启动和管理的,会不会被基于futex的sleep和wake混淆了?

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

【问题讨论】:

    标签: pthreads mutex glibc futex


    【解决方案1】:

    我不明白你为什么不能。

    显然,您将无法使用 pthread。您可能会将 pthread 库与旧互斥锁一起使用,并且您需要将 futex 代码放在其他库中。

    你显然不能锁定一个 linuxthreads 互斥体并用一个 futex 函数解锁它,这永远行不通。

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

    【讨论】:

    • @osgx:如果我知道的话。我不知道有谁真正尝试过构建这种奇怪的代码组合。
    猜你喜欢
    • 1970-01-01
    • 2018-05-23
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    相关资源
    最近更新 更多