条件变量 - 为什么在调用pthread_cond_wait()之前调用pthread_cond_signal()是一个逻辑错误?
它是用POSIX线程教程编写的
https://computing.llnl.gov/tutorials/pthreads/
这是一个逻辑错误。
我的问题是为什么它是一个逻辑错误?
在我的程序中,我需要使用这些信号,但是我不能保证会有一个处于_cond_wait状态的线程。我试图测试它,没有任何反应。这会导致意外行为还是更糟?
谢谢!
没有找到相关结果
已邀请:
4 个回复
舞备联
线程2改变条件并通过条件变量发出变化信号。他不关心线程是否在等待:
底线是:通过某种条件完成通信。条件变量仅唤醒等待线程,以便它们可以检查条件。 条件示例: 队列不为空,因此可以从队列中获取条目 设置了布尔标志,因此线程等待直到另一个线程发出信号可以继续 设置了位集中的一些位,因此等待线程可以处理相应的事件 另见pthread示例
呕蹿尉
青董据零
在没有相应的等待时发出条件变量的信号是一个逻辑错误,因为没有任何东西会收到信号。条件变量不会保持信号状态。
桑娠贯涤