①继承Thread类创建线程
Thread类代表线程,代表线程的类可以通过继承Thread类,并重写run()方法,调用线程类实例的start方法来启动线程。
②实现Runnable接口创建线程
调用Thread的构造方法来创建Thread。
③实现Callable接口通过FutureTask包装器来创建Thread线程
import java.util.concurrent.Callable;
import java.lang.String;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/** * 如何新建线程 * public class NewThread { /*继承Thread类*/ private static class UserThread extends Thread{ @Override public void run() { System.out.println("I am extend Thread !"); } }
/*实现Runnable接口*/
private static class UserRunnable implements Runnable{
@Override
public void run() {
System.out.println("I am implements Runnable !");
}
}
/*实现Callable接口*/
private static class UserCallable implements Callable<String> {
@Override
public String call() throws Exception {
System.out.println("I am implements Callable !");
return "callResult";
}
}
public static void main(String [] args) throws ExecutionException, InterruptedException {
Thread userThread = new UserThread();
userThread.start();
Thread userRunnable = new Thread(new UserRunnable());
userRunnable.start();
FutureTask<String> futureTask = new FutureTask<>(new UserCallable());
Thread userCallable = new Thread(futureTask);
userCallable.start();
System.out.println(futureTask.get());
}
}