A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴建昆 中级黑马   /  2013-4-29 15:11  /  1367 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴建昆 于 2013-4-29 16:58 编辑

线程的启用是用run()呢还是用Start()
有人告诉我说是用start(),用run就不行么

4 个回复

倒序浏览
start():开启线程并默认执行run方法
run():仅仅是对象调用方法,而线程创建了,并没有运行
回复 使用道具 举报
创建线程有两种方式:继承和实现方式,两种方式都需要:
覆盖run方法,将线程要运行的代码定义在该run方法中。调用start方法开启线程并调用对象的run方法。
所以,调用start方法才能开启线程
回复 使用道具 举报
如果调用的是run那么你调用的是一个方法,和你调用其他方法一样。只是在主线程中运行的东西。
但是你调用了start,那么run这个方法将不是主线程的。
你可以用Thread.currentThread().getName() 来检测一下run是属于那个线程的方法
回复 使用道具 举报
start方法的作用是启动线程,并且调用run方法,这是开启多线程。

而run方法是你覆盖之后要执行的操作,单独调用run方法,只会开启单独的线程。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马