1.背景介绍
多线程Thread
是多线程的一种实现方式,是Runnable一种实现
2.知识剖析
多线程Thread的初始化
线程的启动
start()方法的调用
检查线程是否初始化;
通知group,线程启动;
调用native方法start0()启动线程,启动后执行run()方法;;
启动失败容错处理。;
3.常见问题
start()如何调用的run()
start0();
private native void start0();
由这个来吊起本地方法,通过本地方法运行run方法
4.配置展示
源码
5.扩展思考
为什么start()不能重复调用
当调用start()时会调用线程的add()方法,有以下代码
synchronized (this) {
if (destroyed) {
throw new IllegalThreadStateException();
}
synchronized 关键字 不能有两个线程同时启动
6.参考文献
https://wangchangchung.github.io/2016/12/05/Java%E5%B8%B8%E7%94%A8%E7%B1%BB%E6%BA%90%E7%A0%81%E2%80%94%E2%80%94Thread%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/
http://blog.csdn.net/u010185262/article/details/53509685
http://blog.csdn.net/u010412719/article/details/51020128
https://www.cnblogs.com/b3051/p/7484501.html
7.更多讨论
分享到此结束
欢迎大家讨论
PPT:PPT
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~