在POSIX线程中挂起和恢复

时间:2017-07-11 12:39:36

标签: c multithreading posix

我正在学习POSIX线程。我的问题 - 如何暂停和恢复pthread?像Java中的线程一样,有没有像wait,notify等功能?我希望根据某些情况多次运行单个pthread。

提前致谢

1 个答案:

答案 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   的情况。

需要进一步解释吗?