java创建线程三种方式

1、通过继承Thread的方式创建线程

public class FirstThread extends Thread{

    public void run(){

        //获取当前线程名称
        System.out.println("当前线程:" + getName());

    }


    public static void main(String[] args) {

        new FirstThread().start();

    }

}

2、通过实现Runnable接口创建线程

public class SecondThread implements Runnable{


    @Override
    public void run() {

        //获取当前线程名称
        System.out.println("当前线程:" + Thread.currentThread().getName());

    }

    public static void main(String[] args) {

        SecondThread secondThread = new SecondThread();
        new Thread(secondThread).start();

    }


}

3、通过实现Callable接口创建有返回值的线程

public class ThreeThread implements Callable<String> {

    @Override
    public String call() throws Exception {

        System.out.println("当前线程:" + Thread.currentThread().getName());
        return "线程返回的结果!";

    }

    public static void main(String[] args) throws Exception{

        //1、创建Callable接口实现类,并实现call方法
        ThreeThread threeThread = new ThreeThread();
        //2、使用FutureTask来包装Callable对象
        FutureTask<String> result = new FutureTask<>(threeThread);
        //3、使用FutureTask作为Thread对象的target来创建线程
        new Thread(result).start();
        //4、调用FutureTask对象的get方法来获得子线程执行结束后的返回值
        // 获取运算结果是同步过程,即 call 方法执行完成,才能获取结果
        System.out.println(result.get());

    }

}

猜你喜欢

转载自www.cnblogs.com/aibaiyang/p/11748959.html