你猜对了。就这么简单,名称长的吓人。
newSingleThreadExecutor():创建一个只有单线程的线程池。返回类型是ExecutorService对象,该对象代表一个线程池。用于执行Runnable内的run。
第二个一样,创建指定数目线程的线程池。系统随机选择一个空闲的线程执行Runnable内的run。
该对象可以用于指定延迟后再周期性的执行线程内容。
第一个不具备延迟功能,也没有周期执行功能(额外添加的不算)。
这里有张老师的交通灯示例,我加了注释:- //定时器:每10秒钟将当前灯变红,并且将下一个灯变绿;
- ScheduledExecutorService timer = Executors.newScheduledThreadPool(1);
- timer.scheduleAtFixedRate(
- //周期要做的事
- new Runnable(){
- @Override
- public void run() {
- System.out.println(System.currentTimeMillis());
- //返回的下一个灯作为当前灯
- currentLamp = currentLamp.lightOut();
- }
-
- },
- 10, //第一次执行的延迟时间
- 10, //周期为10秒
- TimeUnit.SECONDS//周期的单位
- );
复制代码 张老师的 |