回答
在pthread/POSIX Thread stack中,您可以使用pthread_kill发送信号给单独的线程;但不幸的是,这并不包括“停止”,“继续”或“终止”。请参阅注释here
如果您只对暂停线程感兴趣,一个狡猾的互斥体和条件变量公式是最好的前进方式。
谢谢你,享受你的赏金;) – 2012-02-27 13:16:19
是的大卫施瓦茨,享受那赏金;) – Marty 2012-03-16 09:01:14
您可以为此使用互斥锁和条件变量。
告诉另一个线程暂停:
锁定互斥。
设置共享
pause
变量为true。释放互斥锁。
要检查是否需要暂停:
锁定互斥。
检查
pause
变量是否设置为true。如果没有,释放互斥并继续。
如果是这样,条件变量块转到步骤2。
取消暂停一个线程:
锁定互斥。
将
pause
变量设置为false。广播条件变量。
释放互斥锁。
但我必须指出,这几乎肯定不是一个明智的做法。没有理由你应该永远不想暂停一个线程。你的外在问题可能就像阻止某个特定类型的工作一样。这应该通过指挥线程完成其他工作来完成,而不是阻止他们从事任何工作。
- 1. Gstreamer 1.0暂停信号
- 2. C pthreads和信号发送
- 3. pthreads信号特定线程
- 4. pthreads之间的信号处理
- 5. 如何绘制暂停队列信号量的状态图?
- 6. android代码拨号暂停号码
- 7. GDB 7.0,信号SIGCONT不从暂停()调用打破
- 8. 如何确保在使用暂停()时不会丢失信号?
- 9. 暂停循环并暂停
- 10. Django的暂时禁止信号
- 11. 发送暂停给拨号程序
- 12. 暂停
- 13. 暂停和取消暂停线程
- 14. 暂停和取消暂停AS2动画
- 15. jssor:$暂停()不暂停滑块
- 16. JavaScript停止暂停
- 17. NSThread停止/暂停
- 18. C#暂停/停止的System.Diagnostics.Process
- 19. Unix进程同步没有pthreads/sempahores,信号?
- 20. pthreads条件 - 有可能忽略cond信号?
- 21. 暂停SciPy的odeint
- 22. 暂停的活动
- 23. 暂停$ .post
- 24. 暂停循环
- 25. 不同暂停
- 26. 上暂停
- 27. 暂停执行
- 28. 暂停过程?
- 29. 随机暂停
- 30. Backgroundworker暂停在
你想在任何地方或特定地点暂停吗? – Tudor 2012-02-27 07:51:13