黑马程序员技术交流社区

标题: 启动一个线程是用run()还是start()? [打印本页]

作者: cyc523633157    时间: 2014-8-7 22:12
标题: 启动一个线程是用run()还是start()?
启动一个线程是用run()还是start()?

作者: Vista    时间: 2014-8-7 22:23
用start();
作者: 冒牌高手    时间: 2014-8-7 22:27
用start();
作者: liqiaohui    时间: 2014-8-7 22:29
run():只是对象调用该方法,而start()是开启线程,并调用run()
作者: as_heima    时间: 2014-8-7 22:32
启动线程用 start()
作者: 梧桐树下    时间: 2014-8-7 22:39
用start()
作者: 刘小记.    时间: 2014-8-7 22:45
start() 是启动线程   
作者: hzl_0911    时间: 2014-8-7 23:35
start()启动线程
作者: chulangren2    时间: 2014-8-7 23:54
肯定是start()
作者: yuli2039    时间: 2014-8-8 00:04
哥,有没有认真看毕老师的视频,好水的问题
作者: 我行我SHOW‰    时间: 2014-8-8 00:34
start()开启线程,调用run()方法~~
作者: liubea    时间: 2014-8-8 00:51
肯定是用start()方法,因为start方法会为线程分配线程启动所需的系统资源。如果你实现了Runnable接口或继承了Thread类后,直接使用run方法,这是在当线程类为普通类使用,并不会启动线程。
作者: sunshine9091    时间: 2014-8-8 07:12
清一色的答案啊!
作者: 반야_바라_밀    时间: 2014-8-8 07:14
可以明确的告诉你,启动线程用start().
作者: 想做开发    时间: 2014-8-8 07:14
E  WOLUGUO
作者: xbz1986    时间: 2014-8-8 07:37

用start()
作者: 李文方    时间: 2014-8-8 07:50
必须是start(),如果是调用run()方法,执行它的仍然是main,这样的话,你虽然创建了线程,但并未使用,就没有意义了
作者: 诺忔。初禾、    时间: 2014-8-8 08:03
start()
作者: rolling-stone    时间: 2014-8-8 08:09
start方法两个作用,一个是启动线程,一个是调用run()方法。  
作者: 阿磊    时间: 2014-8-8 08:19
run方法相当于调用普通方法,start开启线程
作者: 洛漠O_o    时间: 2014-8-8 08:40
start启动线程
作者: Joemi    时间: 2014-8-8 08:43
start(),楼主都20分了,还这么水
作者: 席杰    时间: 2014-8-8 08:50
启动当然用start()了。定义线程时用run()。
作者: Ezreal    时间: 2014-8-8 09:05
有点感觉你是来水分的啊
作者: liqi    时间: 2014-8-8 09:48
用run(),就是调用该方法,和我们没有学习线程前的流程一样,这个方法执行完后,才执行下一条语句。
start()方法,在调用run()方法的同时,开启了多线程。
即就算继承Thread类,但是没有这个start()方法开启,直接写run()调用,还是和没有继承一个样。
start()方法就像是钥匙,有开启线程的作用
作者: 大成哥    时间: 2014-8-8 09:51
用start!
作者: Caincxy    时间: 2014-8-8 09:53
我也来凑热闹,用start()
作者: 南柯一梦    时间: 2014-8-8 10:50
run()是线程运行代码,而start()是线程启动代码,还会调用run方法的
作者: 周峰峰    时间: 2014-8-8 14:36

start()
作者: 黄霄仪    时间: 2014-8-8 14:39
本帖最后由 黄霄仪 于 2014-8-8 14:45 编辑

这问题你问的就没水平,只要你看了视频,你就知道答案,我想你要问的应该是为什么不用 run()运行线程,而是用start()吧?如果是在main方式中调用run()相当于调用普通的方法,也就是说run方法可以使用任意合法的标识符,如run1(),在main()方法中亦可以调用,但调用start()方法,它就会自动去找run()方法,并且只能是run这个标识符,其它标识符就不能执行。简而言之就是调用start()方法就和多线程有关,调用run()方法只相当于调用了一个普通方法:lol
作者: 钟伟    时间: 2014-8-8 15:29
这样的问题百度一下一秒就出来了
作者: lcl    时间: 2014-8-8 18:08
start用来开启线程,run里面是操作资源的代码
作者: .Mч┞尛__洋    时间: 2014-8-8 21:19
肯定是start()啊  
作者: zxdanshui    时间: 2014-8-8 23:46
start();                                       
作者: conglin1991    时间: 2014-8-8 23:48
start()。。。。。。。。。。
作者: sydeay    时间: 2014-8-9 23:20
start(  )开启线程,调用run(  )的方法
作者: wnmmp    时间: 2014-8-9 23:28
跟我刚开始学一样,run()只是调用方法,并不会启动新的线程,start()才会
作者: shuimu_88    时间: 2014-8-10 00:31
启动线程是start(),run()只是Thread类中的方法




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