1)Thread类中的run方法
线程对象中的run方法,就是线程独立运行之后,必须要执行的方法,如果我们有什么代码要交给一个线程独立运行,那么就需要把这些代码放到run中.
2)Thread类中的start方法
在代码中,我们并不能直接调用一个线程对象的run方法,而且需要调用线程对象的start方法来启动这个线程,然后这个线程会自动的调用run方法的,如果直接调用了run方法,那就不是多线程代码了
3)Thread类和Runnable接口的关系
Runnable接口中只有一个方法:
public interface Runnable{
public void run();
}
Thread类是Runnable接口的实现类,大致代码如下:
public class Thread implements Runnable{
private Runnable target;
public Thread(){}
public Thread(Runnable target) {
this.target = target;
}
public void run(){
if (target != null) {
target.run();
}
}
}
4)创建和启动线程
第一种方式:创建Thread的子类对象,子类中重写run方法
例如:
//如果需要,可以考虑使用匿名内部类
Thread t = new Thread(){
public void run(){
//代码...
}
};
//启动线程
t.start();
第二种方式:创建Thread类对象,在构造器中传Runnable接口的实现类,实现类中重写run方法
例如:
//如果需要,可以考虑使用匿名内部类
Thread t = new Thread(new Runnable(){
public void run(){
//代码...
}
});
//启动线程
t.start();