首先我们先来写一个程序,看看运行的结果

先使用run方法:

剑指Offer(线程)——Thread中start方法和run方法的区别
输出为:

剑指Offer(线程)——Thread中start方法和run方法的区别

可以看出,不管是主方法还是其他的方法,在run方法下执行的线程都是用主线程去执行。

而start方法:

剑指Offer(线程)——Thread中start方法和run方法的区别

我们可以看出,线程被切换了,不是主线程去执行非main的方法了:

剑指Offer(线程)——Thread中start方法和run方法的区别
原理如下
剑指Offer(线程)——Thread中start方法和run方法的区别

总结:

1. 调用start方法会创建一个新的子线程并且启动。
2. run方法只是一个Thread普通方法的调用。

相关文章:

  • 2021-12-25
  • 2021-05-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-29
猜你喜欢
  • 2022-12-23
  • 2021-12-07
  • 2022-01-16
  • 2021-12-12
  • 2021-05-21
  • 2021-12-17
相关资源
相似解决方案