1.老师在模拟客户拿号时候所用到的Executors.newScheduledThreadPool(1).scheduleAtFixedRate()不懂是什么意思
第一个问题的简写代码如下:
创建一个线程池,它可安排在给定延迟后运行命令或者定期地执行。你也可以将他理解为一个定时器,多长时间拿一个号
Executors.newScheduledThreadPool(1).scheduleAtFixedRate(//固定频率干一件事。
new Runnable(){}, //具体做什么事
0,//等待多长时间开始执行
Constants.COMMON_CUSTOMER_INTERVAL_TIME,//等待多长时间再去执行
TimeUnit.SECONDS);//数据单位,s
上面第一行代码用到了匿名内部类,你可以分开写成下面代码:
ScheduledExecutorService timer=Executors.newScheduledThreadPool(1);//新建一个定时器
timer.scheduleAtFixedRate();//定时器调用方法(固定频率干一件事的方法)
2.还有区分窗口之前的Executors.newSingleThreadExecutor().execute()不懂什么意思
新建一个线程池,随机启动任意个线程。
Executors.newSingleThreadExecutor().execute(new Runnable(){});
创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。
通过pool的产生线程方法,添加Runnable的实现类,匿名内部类
这是我做的笔记,希望对你的理解有所帮助。
|