黑马程序员技术交流社区
标题:
多线程的疑问(已解决)
[打印本页]
作者:
杜鹏云
时间:
2012-8-7 15:49
标题:
多线程的疑问(已解决)
本帖最后由 杜鹏云 于 2012-8-7 16:04 编辑
为什么需要 run ()和 start ()方法,我们可以只用 run ()方法来完成任务吗?
作者:
戎石锁
时间:
2012-8-7 15:55
只用run()方法也可以完成任务,但只它只有一个主线程,只能一步一步的去执行,当第一个方法执行完后才能去执行下一个方法。
就相当于在一个电脑上下载和看电影不能同时进行,当其中之一进行完后,下一个才会进行。
而start()是多个线程进行,CUP快速的切换,能很大的提高效率。
作者:
杜鹏云
时间:
2012-8-7 16:00
戎石锁 发表于 2012-8-7 15:55
只用run()方法也可以完成任务,但只它只有一个主线程,只能一步一步的去执行,当第一个方法执行完后才能去 ...
这个回答很是好理解。。谢谢
作者:
罗磊
时间:
2012-8-7 16:12
本帖最后由 罗磊 于 2012-8-7 16:14 编辑
star() 有开启线程并执行线程的run()方法 的功能 你想说 为什么不直接掉run() 对么? 如果直接掉用run() 就没有开启线程 就相当于是普通的单线程调用方法而已!run()是我们要执行的代码块 你写程序时你也没有把开启线程的功能代码封装到里面 对吧! 所以run()不具备开启线程的功能 ,而star()封装了开启线程的功能;就这样 如果还是不理解 请看看毕老师的 多线程的03
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2