Android 用线程池实现一个简单的任务队列(Kotlin)

ops/2024/9/22 13:39:17/
关于线程池,Kotlin和java的使用方式一样

在Android中,很多人喜欢用Handler的postDelayed() 去实现延时任务.

要使用postDelayed(),去实现延时任务队列,就不可避免要使用递归.

但是这样做,代码的简洁性,和书写的简易,就远不如使用线程池.

使用线程池的简单程度:

    private val mThreadPool : ScheduledExecutorService? = nullprivate val mThreadTime = 150  //任务间隔! 毫秒fun writeData() {if (mThreadPool == null) {mThreadPool =  Executors.newSingleThreadScheduledExecutor()}mThreadPool?.schedule({ //添加任务}, mThreadTime.toLong(), TimeUnit.MILLISECONDS) //延时时长,时间单位}//使用完线程池别忘记关闭mThreadPool.shutdown()


http://www.ppmy.cn/ops/114269.html

相关文章

【系统架构设计师】专题:特定领域软件架构 DSSA(详细知识点及历年真题)

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 一、DSSA的定义二、DSSA的三个基本活动三、参与DSSA的四种角色四、DSSA的建立过程五、三层次模型一、DSSA的定义 特定领域软件架构(Domain Specific Software Architecture,DSSA) DSSA就是一个特定的问题领域中支持…

GlusterFS 分布式文件系统

一、GlusterFS 概述 1.1 什么是GlusterFS GlusterFS 是一个开源的分布式文件系统,它可以将多个存储服务器结合在一起,创建一个大的存储池,供客户端使用。它不需要单独的元数据服务器,这样可以提高系统的性能和可靠性。由于没有…

让C#程序在linux环境运行

今晚花一些时间,总结net程序如何在linux环境运行的一些技术路线。 1、采用.Net Core框架 NET Core 使用了 .NET Core Runtime,它可以在 Windows、Linux 和 macOS 等多个操作系统上运行。可以采用Visual Studio生成Linux版本的dll。 在Linux系统中&…

[go] 命令模式

命令模式 将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。 模型说明 触发者类负责对请求进行初始化,其中必须包含一个成员变量来存储对于命令对象的引用。触发命令,而不同接受者直接…

深度学习02-pytorch-06-张量的形状操作

在 PyTorch 中,张量的形状操作是非常重要的,可以让你灵活地调整和处理张量的维度和数据结构。以下是一些常用的张量形状函数及其用法,带有详细解释和举例说明: 1. reshape() 功能: 改变张量的形状,但不改变数据的顺序…

C#描述-计算机视觉OpenCV(6):形态学

C#描述-计算机视觉OpenCV(6):形态学 前言阈值化二值图像腐蚀与膨胀算法形态学滤波器开启和闭合运算原理概括 前言 这是本系列第六节,主要是介绍基础的形态学运用。 形态学主要是分析图像中不同主题的形态,它定义了一系…

基于SpringBoot+Vue的宠物医院管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…

unity 高性能对象池解决方案

对于一个高性能对象池应该有的功能: 支持多种对象、同步加载、异步加载、隐藏方式、自动收缩(使用LRU缓存机制,最近最久未使用来进行收缩)、异步删除 所以我针对这几个功能讲一下原理: 支持多种对象: G…