第一种:继承Thread
static class myThread extends Thread{
@Override
public void run(){
for(int i = 0; i < 5;i++){
System.out.println("hello myThread");
}
}
}
new myThread().start();
第二种:实现Runnable接口
static class myRunable implements Runnable{
@Override
public void run(){
for(int i = 0; i < 5;i++){
System.out.println("hello myRunable");
}
}
}
new Thread(new myRunable()).start();
第三种:线程池 Executors.newCachedThreadPool
事实上线程池启动线程也是使用上面两种方式