黑马程序员技术交流社区

标题: 多线程的疑问(已解决) [打印本页]

作者: 杜鹏云    时间: 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