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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杜鹏云 中级黑马   /  2012-8-7 15:49  /  1618 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杜鹏云 于 2012-8-7 16:04 编辑

为什么需要 run ()和 start ()方法,我们可以只用 run ()方法来完成任务吗?

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
只用run()方法也可以完成任务,但只它只有一个主线程,只能一步一步的去执行,当第一个方法执行完后才能去执行下一个方法。
就相当于在一个电脑上下载和看电影不能同时进行,当其中之一进行完后,下一个才会进行。
而start()是多个线程进行,CUP快速的切换,能很大的提高效率。
回复 使用道具 举报
戎石锁 发表于 2012-8-7 15:55
只用run()方法也可以完成任务,但只它只有一个主线程,只能一步一步的去执行,当第一个方法执行完后才能去 ...

这个回答很是好理解。。谢谢
回复 使用道具 举报
本帖最后由 罗磊 于 2012-8-7 16:14 编辑

star() 有开启线程并执行线程的run()方法 的功能  你想说 为什么不直接掉run() 对么?  如果直接掉用run() 就没有开启线程 就相当于是普通的单线程调用方法而已!run()是我们要执行的代码块  你写程序时你也没有把开启线程的功能代码封装到里面  对吧! 所以run()不具备开启线程的功能 ,而star()封装了开启线程的功能;就这样  如果还是不理解  请看看毕老师的 多线程的03
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马