我在Linux中使用pthread,並且實現了兩個作爲線程運行的類(它從繼承了抽象POSIX線程的另一個類)。 Thread1正在啓動並停止thread2。在線程2運行期間,線程1正在調用線程2類的函數。我的問題是什麼時候thread1調用這個函數,什麼時候執行?它是否在調用時及時執行,以便thread2執行此方法的操作並在此後繼續停止?Linux線程執行流程
回答
請勿混淆類和線程。類和線程是獨立和不相關的概念。從不同的類執行代碼不會導致代碼在不同的線程中運行。在線程X上調用的任何方法都將在線程X上運行。
例如有兩種方法。一種方法無限期運行(例如run()),另一種方法由其他線程調用。我的問題是,當第二個方法被執行時被其他線程調用?由於thread1正在連續執行第一個方法,它是否停止執行它,並開始執行第二個方法,並在完成時繼續它在第一個方法中停止的位置。 –
應用我的最後一句話:「線程X上調用的任何方法都將在線程X上運行。」當你從另一個線程調用一個方法時,它將在另一個線程上運行。第一個線程對此方法調用一無所知;這個方法屬於哪個* class *無關緊要。類和線程是獨立和不相關的概念。 –
確定它會在線程X上運行,但是它會在被調用的時候運行嗎? –
線程執行可調參數,這些參數在您的情況下可能是成員函數。如果在一個類中封裝一個phtread,只有相應的成員函數變成平行的,其他成員函數的其他調用仍然會在調用者線程上運行。
- 1. 在Linux中執行線程程序
- 2. 執行流程
- 3. C/Linux中的線程執行時間
- 4. 線程執行
- 5. Java - 執行流程
- 6. Java執行流程?
- 7. C++執行流程
- 8. 執行多線程進程
- 9. 執行多線程程序
- 10. 線程池執行程序
- 11. 當前在Linux中執行線程編程的正確方法
- 12. 執行線程onSensorChanged
- 13. 線程不執行
- 14. .net線程執行
- 15. 而線程執行
- 16. 執行程序PHP的Linux
- 17. Linux進程執行歷史
- 18. 從linux執行X11程序
- 19. linux遠程執行命令
- 20. std ::線程何時執行線程?
- 21. 如何使用directshow執行進程間(非線程)流共享?
- 22. Android線程 - 在執行所有其他線程之前執行一個線程
- 23. C++線程的執行時間和執行線程在另一個線程
- 24. 執行並行線程池
- 25. 執行線程'平行'
- 26. 誤解JavaScript執行流程
- 27. Backbone.js會話執行流程
- 28. 執行交流程序的
- 29. Java遞歸執行流程
- 30. Angularjs各個流程執行
你寫的東西沒有意義。線程中的線程不是一個類。 pthread中沒有類。發佈代碼並慢慢準確地解釋你在做什麼。 – Dariusz