在 main 中创建两个线程,先 thread1.start();然后 thread2.start();能确保 thread1 的 run() 方法先执行吗?
不能,start 方法调用之后,线程只是变为就绪状态,并不是运行状态 —— 然后由 JVM 来安排线程何时运行(即执行 Thread 的 run 方法)
当然不能
不过直接执行run方法可以导致在当前的线程中串行执行run()中的代码
既然用线程并发,重点考虑的问题就不是执行先后顺序了。非要先来后到,那就用join方法吧
问问题之前能不能先自己去寻找一下答案啊。关于线程的基本概念网上资料够多了吧。
4 回答970 阅读
4 回答887 阅读
1 回答1.1k 阅读✓ 已解决
586 阅读
492 阅读
2 回答3.8k 阅读
3 回答2.7k 阅读✓ 已解决
4 回答15k 阅读✓ 已解决
1 回答2.9k 阅读
3 回答4.6k 阅读✓ 已解决
不能,start 方法调用之后,线程只是变为就绪状态,并不是运行状态 —— 然后由 JVM 来安排线程何时运行(即执行 Thread 的 run 方法)