线程的 start() 能保证顺序吗?

在 main 中创建两个线程,先 thread1.start();然后 thread2.start();能确保 thread1 的 run() 方法先执行吗?

阅读 4.5k
4 个回答

不能,start 方法调用之后,线程只是变为就绪状态,并不是运行状态 —— 然后由 JVM 来安排线程何时运行(即执行 Thread 的 run 方法)

  • 当然不能

  • 不过直接执行run方法可以导致在当前的线程中串行执行run()中的代码

既然用线程并发,重点考虑的问题就不是执行先后顺序了。非要先来后到,那就用join方法吧

问问题之前能不能先自己去寻找一下答案啊。关于线程的基本概念网上资料够多了吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题