Runnable接口写的非常简单,但为什么类实现给接口之后能实现多线程?他的代码如下:
package java.lang;
public interface Runnable {
public abstract void run();
}
为什么写了run方法之后就实现了多线程?
并不是你直接implement这个interface就可以实现多线程,而是,在实现的时候,你需要加入一个Thread 到你的类里面去,例如:
public class testing implements Runnable{
private Thread myThread=new Thread(this);
//这个this指的是当前Runnable的实例
public testing(){
myThread.start();
}
public void run(){
//你要执行的代码
}
}
你看看Thread的构造器函数吧!
public Thread(Runnable target,String name)
用这个Thread的对象调用start就可以了!
Runnable就是一个标记,为所有的线程对象作个标记,表示这个对象有线程过程可调用。而run函数实际上是JVM决定什么时候调用的。
这个方法很常用,可以认为是一个pattern