具体解释请看注释
package concurrent;
/*
* @author: wjf
* @version: 2016年3月27日 下午1:54:41
*/
public class TestRunnable {
public static void main(String[] args){
MyRunnable run=new MyRunnable();
Thread th=new Thread(run);
th.start();
System.out.println(Thread.currentThread().getId());
/*
* 可以发现下面的运行结果和 主线程的 id 一样,run 方法只是为了定义将要运行的任务,线程的启动还是需要start()
* 直接调用run ,不会启动一个新的线程的。
*
* 另外说明一点 使用runnable 和直接 使用thread 的区别
* runnable 是一个借口,thread 是一个 已经实现了该借口的类
* 使用thread 代码看起来要简洁一点,另外由于 java 中只有单继承,当需要继承时,可能只能实现runnable 借口
*/
run.run();
}
}
class MyRunnable implements Runnable{
public MyRunnable(){
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(Thread.currentThread().getId());
}
}