我正在学习 POSIX 线程。我的问题 - 如何挂起和恢复 pthread ?像Java中的线程一样,有没有wait、notify等函数?我想根据某些情况多次运行单个pthread。
提前致谢
最佳答案
How to suspend and resume pthread ? Like threads in Java, is there any function like wait, notify etc?
阅读 pthread 中有关条件变量的信息。基本上,条件变量允许您在线程进一步继续之前检查条件。例如,有 3 个线程,只有在某些条件为真时才会继续。如果此条件为假,线程将释放它们所持有的互斥锁并“等待”。当 pthread_mutex_t 类型的共享对象上的锁被释放时,其他一些线程将继续执行它们的操作,因此在某个时间点条件将变为真(希望如此)。检查名为 pthread_cond_wait
的函数。
一旦上述条件成立(或满足),则可以使用函数pthread_cond_signal
/pthread_cond_broadcast
来“通知”正在等待pthread_cond_t
对象。这些线程(在这个简单的解释中为 3 个线程)然后自动获取互斥锁(当然,一次一个线程)并开始处理它们的事务。
检查this教程。
I want to run the single pthread multiple times according to some situations.
愿意进一步解释吗?
关于c - POSIX 线程中的挂起和恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45034907/