public class Example extends Thread{
@Override
public void run() {
System.out.println("继承Thread对象创建线程");
}
public static void main(String[] args) {
Thread thread = new Example();
thread.start();
System.out.println("main--run");
}
}
2、实现Runable接口创建线程
public class Example implements Runnable{
@Override
public void run() {
System.out.println("实现Runnable接口创建线程");
}
public static void main(String[] args) {
Thread thread = new Thread(new Example());
thread.start();
System.out.println("main--run");
}
}
3、实现callable接口
public class Example implements Callable {
@Override
public String call(){
System.out.println("实现callable中的call方法实现线程");
return "callable方式的返回值";
}
public static void main(String[] args) throws ExecutionException, InterruptedException {
// 带异步线程返回值的创建方式
FutureTask<String> future = new FutureTask(new Example());
Thread thread = new Thread(future);
thread.start();
// get方法使线程阻塞
String s = future.get();
System.out.println(s);
System.out.println("main--run");
}
}