1.继承Thread类创建线程
static class Demo1 extends Thread{
@Override
public void run() {
System.out.println("1");
}
}
2.实现Runnable接口创建线程
static class Demo2 implements Runnable{
@Override
public void run() {
System.out.println("runnable");
}
}
3.使用Callable和Future创建线程(可以接受线程的返回值)
public class CallableDemo implements Callable<String> {
@Override
public String call() throws Exception {
System.out.println("come in");
Thread.sleep(10000);
return "SUCCESS";
}
public static void main(String[] args) throws ExecutionException, InterruptedException {
ExecutorService executorService=Executors.newFixedThreadPool(1);
CallableDemo callableDemo=new CallableDemo();
Future<String> future=executorService.submit(callableDemo);
System.out.println(future.get());
}
}