ScheduledExecutorService中Executors.newScheduledThreadPool()的内部机制是什么

时间:2017-10-04 03:44:43

标签: java multithreading

我最近使用了ScheduledExecutorService,我正在使用Executors.newScheduledThreadPool()方法。我对它的工作方式感到困惑。我创建了一个程序,每5秒执行一次延迟并打印一个语句。但是根据API而言,Executors.newScheduledThreadPool()用于创建线程。所以在我的例子中我使用下面的代码

public class TestExecuterService {

    public static void main(String[] args) {
        ScheduledExecutorService ses = Executors.newScheduledThreadPool(0);
        ses.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                System.out.println("Print every interval");
            }
        }, 0, 5, TimeUnit.SECONDS);  // execute every x seconds

    }

}

我在这里用ScheduledExecutorService ses = Executors.newScheduledThreadPool(0); 所以我将0分配给线程池。但是当我将10分配给线程池,即Executors.newScheduledThreadPool(10);时,程序的功能相同。 那么Executors.newScheduledThreadPool()方法的功能是什么?如果这个问题很愚蠢,请告诉我。

0 个答案:

没有答案