zoukankan      html  css  js  c++  java
  • 《多线程并发任务处理组件》——无声

    Silent Task Handler Kit

    源码
    github地址
    码云地址

    What’s Silent Task Handler Kit

    静默任务处理器组件可以赋予你的应用一键式多线程处理任务的能力, 它基于jdk1.8中concurrent包内容进行封装简化, 无任何第三方代码,
    它提供了更简单的多线程任务处理方法, 其中你可以通过插拔式配置来满足你的需求
    目前提供了以下配置

    1. 启动线程大小
    2. 自定义线程池
    3. 同异步处理机制
    4. 任务结束异步处理机制

    快速开始

    当你有一组任务数据需要处理, 只需像这样

    // 待处理任务数据, 比如是一组待更新的每天凌晨需要处理的数据
    List<String> testData = new ArrayList<>();
    // 多线程操作
    new TaskHandler<String>(testData) {
        @Override
        public void run(String s) {
            //TODO 你的业务代码 根据每个数据的内容进行后续的业务操作
        }
    }.execute();
    

    它就可以帮你完成多线程任务处理. 并且它还支持同异步处理机制, 例如这样

    // 待处理任务数据, 比如是一组待更新的每天凌晨需要处理的数据
    List<String> testData = new ArrayList<>();
    // 多线程操作
    new TaskHandler<String>(testData) {
        @Override
        public void run(String s) {
            //TODO 你的业务代码 根据每个数据的内容进行后续的业务操作
        }
    // 设置 sync 同异步处理, 默认为异步
    }.sync(true).execute();
    
    // 方法 fun1() 需要等待所有任务处理结束后才能执行
    fun1();
    
    

    又或者说你的 fun1() 后面还有其他事情, 比如 fun2(), 但你想让任务处理结束后执行fun1(), 但fun2()不想同fun1()一起去等待任务结束, 此时你可以这样

    // 待处理任务数据, 比如是一组待更新的每天凌晨需要处理的数据
    List<String> testData = new ArrayList<>();
    // 多线程操作
    new TaskHandler<String>(testData) {
        @Override
        public void run(String s) {
            //TODO 你的业务代码 根据每个数据的内容进行后续的业务操作
        }
    // athend来实现异步执行结束后执行指定方法
    }.athend(() -> {
                fund1();
             }.execute();
    
    // 方法 fun2() 不需要等待所有任务处理结束后执行, 将与任务并行
    fun2();
    
    

    希望看到这里的你能支持我. 给个star

  • 相关阅读:
    html+css实现简易下拉菜单
    Win10 设置外网多用户远程桌面连接
    ubuntu 14.04 下svn + apache2 配置
    JavaScript 学习笔记(一)
    生成Log文件的写法
    运行执行sql文件脚本的例子
    css实现文本框和下拉框结合的案例
    angularjs 1 开发简单案例(包含common.js,service.js,controller.js,page)
    将字符串转成只有首字母是大写
    java之springboot的spring-boot-starter-aop的切面编程的使用(四)
  • 原文地址:https://www.cnblogs.com/lvgo/p/13275812.html
Copyright © 2011-2022 走看看