第四种线程池是ScheduledExecutorService,我平时没有用过,他的最大优点除了线程池的特性以外,可以实现循环或延迟任务。
ScheduledExecutorService和Timer的区别
Timer的内部只有一个线程,如果有多个任务的话就会顺序执行,这样我们的延迟时间和循环时间就会出现问题。
ScheduledExecutorService是线程池,所以就不会出现这个情况,在对延迟任务和循环任务要求严格的时候,就需要考虑使用ScheduledExecutorService了。
ScheduledExecutorService的用法
publicclassMainActivityextendsAppCompatActivity{
//通过静态方法创建ScheduledExecutorService的实例
privateScheduledExecutorServicemScheduledExecutorService=Executors.newScheduledThreadPool(4);
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//延时任务
mScheduledExecutorService.schedule(threadFactory.newThread(newRunnable(){
@Override
publicvoidrun(){
Log.e("lzp","firsttask");
}
总之,scheduledexecutorservice给大家简单的介绍了一些,希望大家多看看。