此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

start、run、join

首先得了解什么是主线程,当Java程序启动时,一个线程立刻运行,该线程通常叫做程序的主线程(main thread)。主线程的重要性体现在两方面:
1. 它是产生其他子线程的线程
2. 通常它必须最后完成执行,因为它执行各种关闭动作。

 

run() 只是运行此方法,依旧处于主线程内,不会开启新线程。

eg: thread1.run()

start() 开启一个新线程,并放置于就绪队列

eg: thread1.start()

join() 开启一个新线程并加入到主线程,注意,此方法会阻塞主线程,在新线程完成之前主线程无法做任何事。

eg: thread1.join()

备注:主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程将于子线程结束之前结束,但是如果主线程处理完其他的事务后,需要用到子线程的处理结果,也就是主线程需要等待子线程执行完成之后再结束,这个时候就要用到join()方法了。

posted @ 2018-10-30 11:54  炎泽  阅读(927)  评论(0编辑  收藏  举报