线程的4种创建

1.Thread

2.Runnable

3.FutureTask

带返回值
class FutureTask implements RunnableFuture
interface RunnableFuture extends Runnable, Future


    public static void main(String[] args) throws Exception {
        FutureTask ft = new FutureTask<>(new Callable() {
            @Override
            public Object call() throws Exception {
                System.out.println(new Date());//Wed Mar 20 19:04:45 CST 2019
                Thread.sleep(3000);
                return 1;
            }
        });
        new Thread(ft).start();

        //阻塞到任务结束
        Object o = ft.get();
        System.out.println(new Date() + " o =" + o);//Wed Mar 20 19:04:49 CST 2019 o =1
    }

4.TimerTask

定时器
abstract class TimerTask implements Runnable

    public static void main(String[] args) throws Exception {
        Timer timer = new Timer();
        TimerTask timerTask = new TimerTask() {
            @Override
            public void run() {
                System.out.println(new Date() + " run");//Wed Mar 20 19:12:54 CST 2019 run
            }
        };
        timer.schedule(timerTask, 1000);
        System.out.println(new Date());//Wed Mar 20 19:12:53 CST 2019
    }

猜你喜欢

转载自blog.csdn.net/mingwulipo/article/details/88697047