我有几个关于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. 我对指针增量有点困惑
多线程是混淆了我怀疑的大多数人的话题。 ;) –