黑马程序员技术交流社区
标题:
关于多线程 程序中输出的是什么 原因是什么这个是重点
[打印本页]
作者:
齐伟超
时间:
2015-8-31 17:31
标题:
关于多线程 程序中输出的是什么 原因是什么这个是重点
package com.itcast.day1;
public class Test1 {
public static void main(String[] args) {
new Thread(new Runnable(){
public void run(){
System.out.println("runnable run");
}
})
{
public void run(){
System.out.println("subthread run");
}
}.start();
}
}
复制代码
作者:
freehello
时间:
2015-8-31 20:42
本帖最后由 freehello 于 2015-8-31 20:45 编辑
第一个Runnable是Thread构造函数的一个参数,第二个 覆写了Thread的run方法,
因此实际执行的是第二个 。
这个是jdk源码Thread.java中的代码
@Override
public void run() {
if (target != null) { //这里的target就是传递的参数,既第一个Runnable
target.run();
}
}
这个被第二个覆写了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2