线程入门-使用Execcutor

Executor来代替上篇文章中显示地建立Thread对象。它在客户端和任务执行之间提供了一个间接层,与客户端直接执行任务不一样,这个中介对象将执行任务。java

/**
 * Created by Administrator on 2017/8/31.
 */
public class LiftOff implements Runnable {

    protected int countDown = 10;
    private static int taskCount = 0;
    private final int id = taskCount++;

    public LiftOff() {

    }

    public LiftOff(int countDown) {
        this.countDown = countDown;
    }

    public String status() {
        return "#" + id + "(" +
                (countDown > 0 ? countDown : "LiftOff!") + ")";
    }

    @Override
    public void run() {
        while (countDown-- > 0) {
            System.out.print(status());
            Thread.yield();
        }
    }

}

 

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * Created by Administrator on 2017/8/31.
 */
public class MainThread {
    public static void main(String[] args) {
        ExecutorService exec = Executors.newCachedThreadPool();
        for (int i = 0; i < 5; i++) {
            exec.execute(new LiftOff());
        }
        exec.shutdown();

        System.out.print("等待发射\r\n");
    }
}

输出结果:ide

 

exec.shutdown()能够防止新任务被提交给这个Executorthis

相关文章
相关标签/搜索