【问题标题】:APUE<2nd> 11.4,signal first or unlock firstAPUE<2nd> 11.4,先发信号还是先解锁
【发布时间】:2015-05-28 23:43:00
【问题描述】:

哪一个是正确的? 1.

pthread_mutex_lock
...
pthread_cond_broadcast
pthread_mutex_unlock

2.

pthread_mutex_lock
...
pthread_mutex_unlock
pthread_cond_broadcast

我知道第二个条件可能会在解锁期间更改为广播。 但是第一个是怎么回事。线程可以被阻塞吗? 是否有一些代码可以在第一个中显示问题? 谢谢

【问题讨论】:

    标签: c multithreading unix


    【解决方案1】:

    第一个序列工作正常。 pthread_cond_broadcast() 应该在互斥锁被锁定后调用,并且必须解锁互斥锁才能完成pthread_cond_wait() 例程。

    你可以在这里找到进一步的解释:https://computing.llnl.gov/tutorials/pthreads/#ConVarOverview

    【讨论】:

    • 欢迎来到 Stack Overflow!虽然这可能会回答问题,但it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多