黑马程序员技术交流社区

标题: 为什么不可以直接用run()来启动线程? [打印本页]

作者: 真实姓名被注册    时间: 2015-7-20 20:52
标题: 为什么不可以直接用run()来启动线程?
创建线程
1、定义Thread子类
2、复写run()方法
3、调用start()启动线程,并执行run()方法
之所以要在start()中调用run(),而不是直接run(),我想应该是JVM在start()中做了额外的工作,
比如调用操作系统函数,建立线程,排在队列中之类,然后再调用run()
那么问题来了,为什么JVM不能在编译的时候直接在run()方法内部添加这些代码呢?非要再来个start()
,似乎有点多此一举啊?

作者: 真实姓名被注册    时间: 2015-7-20 21:06
有没有可能是JAVA设计者们故意的,留下可以单独运行run()的方式,并不在系统中创建线程




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2