首页 > 编程知识 正文

executor,java为什么要有个测试类

时间:2023-05-03 09:35:33 阅读:50986 作者:303

文章目录序言一、官方文件建议二、交换方法总结

如果能在前言中加入这篇文章,我们也基本上确定一个前提。 AsyncTask废弃后,我们需要寻找新的东西来取代它

一、官方文件建议

thisclasswasdeprecatedinapilevel 30。

usethestandardjava.util.concurrentorkotlinconcurrencyutilitiesinstead。

这是同步任务在官方文档中的描述。 文档明确说明了异步任务已被废除。 建议替代名为java.util.concurrent的包的相关类或kotlin的薄片。 薄片夹子是怎么在外面写的,这里就不谈了。 当然,主要是我也没有学习kotlin。

java代码的本文采用了使用java.util.concurrent包中包含的ExecutorService的方法。

二、替换方法为了简单易懂而简单地说。 ExecutorService可以理解为如何实现java线程池。 创建它的实例是创建线程池。 线程池在做什么不需要我说吧。

代码如下所示。

/* * createbylundao * on 2021.9.3 * use for : */publicclasslocalthreadpools { privatestaticexecutorservicexecutorserserver 隐私保护服务公共服务同步chronizedexecutorservicegetexectuorservice () if(executorservice==null ) executorservice } publicstaticvoidshutdownlocalthreadpools (() if (! executorService.isShutdown () ({ executorService.shutdownNow ); log.I('threadpool ',' Thread Shut Down!' ); }}在这里,我们创建了专用的工具类LocalThreadPools来处理耗时的操作。 主要是,如果在mvvm体系结构下让activity管理线程池,则不知道如何传递实例,因此可以直接创建工具类,并使用单实例模式创建线程池对象的全局唯一executorservice=executors.newfixedthreadpool (2; 此语句是创建真正的线程池,在此选择创建固定线程数的线程池。 线程数为2。 的所有创建类型如下: 请根据需要制作

1. newCachedThreadPool创建可缓存的线程池。 如果线程池的长度超过需要处理的长度,则可以灵活地重用空闲线程。 如果不能重用,请创建新线程。 2. newFixedThreadPool创建一个固定长度的线程池来控制线程的最大并发行数,超出的线程将在队列中等待。 3. newScheduledThreadPool创建固定长度的线程池,以支持计划和定期任务执行。 4. newSingleThreadExecutor创建单线程池,只在唯一的工作线程上执行任务,以便所有任务都按指定顺序(FIFO、LIFO、优先级)执行。 稍后的ShutdownLocalThreadPools ()方法用于关闭线程池,如果不停止线程池,其中的线程将一直运行。 此方法通常在销毁活动时重写并投入使用(onDestroy )。

完成这个工具类之后,我们花时间的操作就变得简单了。

publicvoidinsertcustomer (customer . customers ) { //executorService为getExectuorService获取的对象//具体名称为, 请按照自己的习惯命名为executorservice.exectuorservice { @ override public void run ()//customerDao.insertcustomer ) customers (); //newinsertasynctask (客户道路).execute (客户) ); }调用} ExecutorService对象execute或submit方法。 通常选择执行。 前者没有返回值,后者可以返回值。 不展开具体的这里。 写得太多反而容易混乱。 必要时请自己在百度上查询。

在run ()中写下需要时间的操作,就此结束。 在依赖的活动中,请不要忘记关闭线程池。 顺便说一下,这里的shutdown不会立即关闭线程池,而是不再接收任务,并在当前队列中的所有任务完成之前关闭。 ) ) ) )。

这篇文章总结了自己至今为止学到的没有系统的记录,并不保证完全正确。 如果在阅读过程中发现了什么问题,请指出本人的错误不会对他人产生不良影响。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。