public class ThreadA extends Thread{
@Override
public void run() {
System.out.println("这里编写线程要做的事情");
}
public static void main(String[] args) {
//1.新建实例并启动一个线程
new ThreadA().start();
//2.若无需复用也可以用匿名内部类实现
new Thread(() -> {
System.out.println("这里编写线程要做的事情");
}).start();
}
}
2.实现Runnable接口
新建一个类实现Runnable接口,实现它的run()方法。
将该类的对象传入Thread的构造器新建一个Thread类的对象,并执行它的start()方法。
public class ThreadB implements Runnable{
@Override
public void run() {
System.out.println("这里编写线程要做的事情");
}
public static void main(String[] args) {
new Thread(new ThreadB()).start();
}
}
3.实现Callable接口
新建一个类实现Callable接口,实现它的call()方法。
用Callable实现类的对象构建一个FutureTask对象。
再用FutureTask对象构建一个Thread对象,执行它的start()方法。
public class ThreadC implements Callable<Integer> {
@Override
public Integer call() throws Exception {
System.out.println("这里编写线程要做的事情");
//返回结果
return 10;
}
public static void main(String[] args) throws Exception {
ThreadC threadC = new ThreadC();
FutureTask<Integer> task = new FutureTask<>(threadC);
new Thread(task).start();
//获取call()的返回结果
System.out.println(task.get());
}
}