黑马程序员技术交流社区

标题: 线程的启动问题,求答案 [打印本页]

作者: 吴建昆    时间: 2013-4-29 15:11
标题: 线程的启动问题,求答案
本帖最后由 吴建昆 于 2013-4-29 16:58 编辑

线程的启用是用run()呢还是用Start()
有人告诉我说是用start(),用run就不行么
作者: 吴波    时间: 2013-4-29 16:05
start():开启线程并默认执行run方法
run():仅仅是对象调用方法,而线程创建了,并没有运行

作者: 陈国斌    时间: 2013-4-29 16:31
创建线程有两种方式:继承和实现方式,两种方式都需要:
覆盖run方法,将线程要运行的代码定义在该run方法中。调用start方法开启线程并调用对象的run方法。
所以,调用start方法才能开启线程
作者: 刘胜寒    时间: 2013-4-29 16:48
如果调用的是run那么你调用的是一个方法,和你调用其他方法一样。只是在主线程中运行的东西。
但是你调用了start,那么run这个方法将不是主线程的。
你可以用Thread.currentThread().getName() 来检测一下run是属于那个线程的方法
作者: HM张勇    时间: 2013-4-29 16:53
start方法的作用是启动线程,并且调用run方法,这是开启多线程。

而run方法是你覆盖之后要执行的操作,单独调用run方法,只会开启单独的线程。




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