我最近使用了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()
方法的功能是什么?如果这个问题很愚蠢,请告诉我。