1. 通过继承Thread类,重写run方法;
2. 通过实现runable接口;
3. 通过实现callable接口这三种方式,下面看具体demo。
package com.xuan.thread;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class CreateThreadDemo{
public static void main(String[] args){
//1.继承thread类
Thread thread = new Thread(){
public void run(){
System.out.println("继承Thread类");
super.run();
}
};
thread.start();
//2.实现runnable接口
Thread thread2 = new Thread(new Runnable(){
@Override
public void run(){
System.out.println("继承runnable");
}
});
thread2.start();
//3.实现callable接口
ExecutorService service = Executors.newSingleThreadExecutor();
Future<String> future = service.submit(new Callable(){
@Override
public Object call() throws Exception{
return "通过callable接口";
}
});
try{
String result = future.get();
System.out.println(result);
}catch (InterruptedException | ExecutionException e){
e.printStackTrace();
}
}
}