我有一段代码,它使用Boost线程来加速计算,但我需要调试它并希望以串行方式运行它们,而不是并行运行它们。我怎么做?如何使Boost线程串行运行,而不是并行运行?
回答
除非我错过了一些东西,只是使用单个线程进行调试。忘掉多线程,除非你正确地使用算法。
假设你的意思是“加速计算”,串联运行的线程根本无助于性能。实际上,这会花费你在线程上的开销,因为你没有对任何工作进行并行化。
如果你倾向于串行运行它们,只要确保每个人都在等待当前线程完成执行,然后再允许另一个运行呢?我可能在这里错过了一些东西。
他希望串联运行的线程能够使调试更容易。因此,“但我需要调试它,并希望将它们串联起来”作为他第一句话的一部分。假设他在修复bug后需要重新启用并行线程是安全的。 – 2010-08-30 22:47:42
正是我的意思。谢谢你,埃米尔。 – gt6989b 2010-09-01 12:38:26
在所有线程中放置断点。您的调试器应该有一个命令来逐步执行或启动一个线程。其余的线程将保持暂停状态,因此它们不会干扰您的单线程调试。一旦一个线程终止,您可以恢复所有线程,或者您可以在下一个线程中继续调试。
我想知道你是否可以使用一个简单的系统调用来强制它在1个线程中运行,就像下面提出的MSalters一样。 – gt6989b 2010-09-01 12:40:02
仅为您的进程分配单个处理器内核。在Windows上,您可以使用SetProcessAffinityMask
- 1. 并行运行线程
- 2. 一次运行一个线程(而不是并行)
- 3. Android:并行并行运行的线程
- 4. 提升线程串行运行,不并行
- 5. PHP Pthreads - 线程不并行运行
- 6. 使用线程并行运行方法
- 7. 在boost线程中运行boost asio io_service
- 8. 一次运行多线程并让线程快速运行?
- 9. 并行运行的Python线程
- 10. 并行运行的python线程?
- 11. 运行并发线程执行
- 12. Tomcat JSP似乎是串行运行(而不是并行) - 我错过了什么?
- 13. 如何使用ThreadPool来并行运行套接字线程?
- 14. 如何使用多线程并行运行两个实现类?
- 15. 用于联网的Python线程 - 线程不能并行运行
- 16. 运行中值曲线而不是LOWESS
- 17. 如何并行运行
- 18. Python线程在创建时运行,而不是在运行()时调用
- 19. 如何运行并行COLT程序
- 20. 如何并行运行子程序?
- 21. 的Windows线程(C运行时,并行线程,的std ::线程)
- 22. 测试用例按顺序运行而不是平行运行
- 23. 命令从命令行运行,而不是从cron运行?
- 24. 按顺序而不是平行运行最小运行测试?
- 25. 线程是否可运行?或上课?如何在后台运行线程?
- 26. 并行运行
- 27. 并行运行
- 28. 运行'python setup.py test'而不运行build_ext?
- 29. 运行功能串行和并行
- 30. 从Windows cmd或IDLE运行而不是从PyCharm运行时,“QThread:线程仍在运行时被销毁”?
Err ..只是不要通过线程启动预期的子例程。 – 2010-08-30 21:55:46
对于更一般的问题:[如何检测和调试多线程问题?](http://stackoverflow.com/questions/499634/how-to-detect-and-debug-multi-threading-problems) – 2010-08-30 22:15:46
Your键盘驱动程序有一个线程竞争问题。 – 2010-08-30 22:37:46