我正在学习POSIX线程。我的问题 - 如何暂停和恢复pthread?像Java中的线程一样,有没有像wait,notify等功能?我希望根据某些情况多次运行单个pthread。
提前致谢
答案 0 :(得分:0)
如何暂停和恢复pthread?像Java中的线程一样,有没有 功能如wait,notify等?
在pthread中了解条件变量。基本上,条件变量允许您在线程可以继续进行之前检查条件。比方说,有3个线程只有在某些条件为真时才会继续。如果这种情况是错误的,线程将释放他们持有的互斥锁并且等待"等等。随着对pthread_mutex_t
类型的共享对象的锁定被释放,一些其他线程将继续执行它们的东西,因此在某个时间点条件将变为真(希望如此)。检查名为pthread_cond_wait
的函数。
一旦所述条件变为真(或满足),则函数pthread_cond_signal
/ pthread_cond_broadcast
可用于"通知"等待pthread_cond_t
对象的线程。这些线程(在这个简单的解释中有3个线程)然后自动获取互斥锁(当然,一次一个线程)并开始他们的业务。
检查this教程。
我想根据一些人多次运行单个pthread 的情况。
需要进一步解释吗?