如果ThreadPoolExecutor的corePoolSize为0,会发生什么

时间:2018-03-16 15:35:15

标签: threadpoolexecutor

我正在阅读高效的Android线程。 它说,

  

使用零核心线程和一个可以容纳10个任务的有界队列,在插入第11个任务之前,没有任务实际运行,从而触发创建线程。

但是当我尝试代码时,

    int N = Runtime.getRuntime().availableProcessors();
    ThreadPoolExecutor executor = new ThreadPoolExecutor(
            0,
            N*2,
            60L, TimeUnit.SECONDS,
            new ArrayBlockingQueue<Runnable>(10));

    for(int i = 1 ; i <= 5 ; ++i) {

        final int j = i;

        executor.execute(new Runnable() {
            @Override
            public void run() {
                Log.d("Debug", "Executed : " + j);
                SystemClock.sleep(1000);
            }
        });

        Log.d("Debug", "Queued : " + i);

    }

即使队列中只有5个任务,任务也会正确执行。我错过了什么?

0 个答案:

没有答案