2017-07-11 84 views
-2

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

在此先感谢

+0

https://stackoverflow.com/questions/11468333/linux-threads-suspend-resume这可能有你所需要的。 – J0hn

回答

0

如何暂停和恢复并行线程?像Java中的线程一样,有没有任何 函数像wait,notify等?

阅读关于条件变量pthread。基本上,条件变量允许您在线程可以继续前进行检查条件。例如说有3个线程只有在某些条件成立时才会进行。如果这种情况是错误的,线程将释放它们持有的互斥锁并“等待”。由于pthread_mutex_t类型的共享对象上的锁被释放,所以其他一些线程将继续前进,并在某个时间点完成它们的工作,这样条件将变为真(希望)。检查名为pthread_cond_wait的功能。

一旦所述条件变为真(或被满足),则函数pthread_cond_signal/pthread_cond_broadcast可用于“通知”正在等待对象的线程。这些线程(这个简单的解释中的3个线程)然后自动获取互斥锁(当然,每次只有一个线程)并开始他们的业务。

检查this教程。

我想根据 情况多次运行单个pthread。

需要进一步解释吗?