我有幾個關於Java多線程的問題。我目前正在學習不同的多線程方法。我的第一個問題是,線程中的代碼在運行後會發生什麼?我需要停止/殺死線程嗎?我目前正在爲每個線程製作一個類,並在每個類中實現Runnable。然後,我使用new ThreadClass();.
在主類中啓動線程。在Thread類的構造函數中,我將它設置爲創建一個名爲「second」的Thread。如果我在主方法中添加了兩次new ThreadClass()
,那麼這兩個線程都被命名爲「second」?謝謝。對多線程概念有點困惑
回答
我的第一個問題是,線程在代碼完成運行後會發生什麼?我需要停止/殺死線程嗎?
當線程無關時停止線程。如果你有一個ExecutorService,你必須在完成之後使用shutdown。
如果我在主方法中添加兩次新的ThreadClass(),兩個線程都被命名爲「second」?
您正在使代碼相同。這並不意味着線程的名稱必須相同(反之亦然)
@MisrableVariable感謝您的更正。它看起來不正確,但拼寫正確。 ( –
那麼這個名字會不會自動相同?我的ThreadClass構造函數看起來像這樣:'public class ThreadClass implements Runnable { ; second.start(); }' – user1947236
只有當你自動地給它同名的時候,你會有兩個同名的線程運行不同的對象,我建議給出不同的線程,知道哪些是堆棧跟蹤和調試 –
我假設你的意思是Thread而不是ThreadClass
。
當線程的run
方法返回時,線程將停止。如果您只在第二個線程中指定名稱,那麼只有該線程將具有「第二個」名稱。第一個線程不受影響。
如果可能,應該儘量不要撥打stop,因爲它不允許線程乾淨地退出。
不,我的意思是ThreadClass。 c的名字lass創建新線程。看看我對上一個答案的評論。 – user1947236
- 1. 對FCGI概念感到困惑
- 2. 多線程概念
- 3. 困惑於一些DDD概念
- 4. 我很困惑於一個小概念
- 5. 線程概念
- 6. 線程概念
- 7. C#:線程和多線程的概念
- 8. 關於子程序中的「返回值」概念的困惑
- 9. 對Azure有點困惑
- 10. Java線程概念
- 11. C++困惑線程
- 12. java是否有可轉移對象(多線程概念)
- 13. C++程序線程概念
- 14. XSLT有點困惑
- 15. java中多線程的概念
- 16. JMS多線程概念與MQ
- 17. 何處使用多線程概念
- 18. java多線程的核心概念
- 19. C#多線程概念問題
- 20. Wait()和Notify()概念 - Java多線程
- 21. Qt中的隱式共享概念令人困惑
- 22. 我很困惑Java多線程
- 23. 概念線程問題
- 24. 線程和塊概念
- 25. 學習線程概念
- 26. Java線程概念/演示
- 27. 困惑Java的線程池
- 28. 關於線程的困惑
- 29. 困惑線
- 30. 我對指針增量有點困惑
多線程是混淆了我懷疑的大多數人的話題。 ;) –