java提供了三种多线程的实现方式,分别为:继承Thread类、实现Runnable接口 和 实现Callable<>接口。
继承Thread类
线程的执行体是run()方法,所以我们只需要重载父类的run()方法。创建类对象,调用start()方法即可。
实现Runnable接口
重载run()方法。利用MyRunnable类的对象当作参数,创建Thread对象,调用该对象的start()方法即可。
实现Callable<>接口
这种方法允许子线程函数有返回值,并能够抛出异常。
代码:
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class ThreadTest{
public static void main(String[] args){
new MyThread().start();
new Thread(new MyRunnalbe()).start();
new Thread(new FutureTask<Void>(new MyCallable())).start();
}
}
class MyThread extends Thread{//继承Thread类
@Override
public void run(){
System.out.println("123");
}
}
class MyRunnalbe implements Runnable{//实现Runnable接口
@Override
public void run(){
System.out.println("123");
}
}
class MyCallable implements Callable<Void>{//实现Callable接口,<>内和call方法的返回值相同
@Override
public Void call() throws Exception{//这种实现方式可以抛出异常和带有返回值
System.out.println("123");
return null;
}
}