计算机技术实战

纸上得来终觉浅,绝知此事要躬行。

Download this project as a .zip file Download this project as a tar.gz file

异步的几种方式

目录

继承Thread

    Thread t = new Thread() {
        @Override
        public void run() {
            // ...
        }
    };
    t.start();

使用Runnable

    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            // ...
        }
    });
    t.start();

使用Callable和FutureTask

    Callable<String> callable = new Callable<String>() {
        @Override
        public String call() {
            return "Hello Callable!!!";
        }
    };
    FutureTask<String> futureTask = new FutureTask<>(callable);
    Thread t = new Thread(futureTask);
    t.start();

使用Callable、FutureTask和线程池

    Callable<String> callable = new Callable<String>() {
        @Override
        public String call() {
            return "Hello Callable!!!";
        }
    };
    FutureTask<String> futureTask = new FutureTask<>(callable);
    ExecutorService service = Executors.newSingleThreadExecutor();
    service.execute(futureTask);