我有一段代碼,它使用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