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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yesecongcong 中级黑马   /  2014-6-17 17:08  /  1341 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请教各位大神:线程中的start()方法是与run()方法都能运行run()中的程序,run()方法很好理解,但是start()方法是如何实现的,是因为run()方法是构造方法,会优先执行吗?

3 个回复

倒序浏览
这位同学说的东西我有点没明白的感觉。

首先run方法是用来放入需要进行线程运算的代码块用的,至于start方法并不是自己所建类中的方法,而是线程中的方法,也就是Thread中的方法,将代码写完后,你还要将类放入一个新建的Thread中的。

所以run方法只是用来存代码块用的,start的方法是用来启动线程,并调用run方法进入线程中的。这样明白了吗?

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
start()使该线程开始执行,让Java 虚拟机调用该线程的 run 方法;结果是两个线程并发地运行;当前线程调用 start 方法,另一个线程执行 run 方法。
回复 使用道具 举报
如果只是调用run()方法,并不会开启新的线程,仅仅是方法的调用;
调用start()方法,会在新的线程中执行run()方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马