我有一段代码,它使用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. PHP Pthreads - 线程不并行运行
- 4. 并行运行的python线程?
- 5. Tomcat JSP似乎是串行运行(而不是并行) - 我错过了什么?
- 6. 如何使用ThreadPool来并行运行套接字线程?
- 7. 用于联网的Python线程 - 线程不能并行运行
- 8. 如何并行运行
- 9. Python线程在创建时运行,而不是在运行()时调用
- 10. 如何运行并行COLT程序
- 11. 命令从命令行运行,而不是从cron运行?
- 12. 线程是否可运行?或上课?如何在后台运行线程?
- 13. 并行运行
- 14. 运行功能串行和并行
- 15. 脚本不是并行运行,其运行顺序
- 16. 线程运行不正常
- 17. android线程不运行
- 18. 不能运行bartMachine并行
- 19. 程序不会在NetBeans中运行,而是在命令行上运行!
- 20. 线程和运行
- 21. 运行C++线程()
- 22. 线程未运行
- 23. Java线程运行
- 24. Android - 如何并行运行多个线程
- 25. 我们如何运行两个线程并行?
- 26. 如何在多个线程中并行运行依赖任务?
- 27. 如何检查boost线程是否正在运行并终止它
- 28. js不是在Chrome上运行,而是在Firefox上运行
- 29. 使用xargs并行运行程序
- 30. 并行运行RSelenium
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