# CountDownLatch demo演示数据分片多线程处理
package com.example.core.mydemo; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor; /**
* 打印结果:
* begin
* 当前线程名称=pool-1-thread-1
* 业务逻辑多线程处理,可以按数据集合分片来处理
* 当前线程名称=pool-1-thread-2
* 业务逻辑多线程处理,可以按数据集合分片来处理
* 当前线程名称=pool-1-thread-5
* 业务逻辑多线程处理,可以按数据集合分片来处理
* 当前线程名称=pool-1-thread-6
* 业务逻辑多线程处理,可以按数据集合分片来处理
* 当前线程名称=pool-1-thread-7
* 业务逻辑多线程处理,可以按数据集合分片来处理
* 当前线程名称=pool-1-thread-3
* 业务逻辑多线程处理,可以按数据集合分片来处理
* 当前线程名称=pool-1-thread-4
* 业务逻辑多线程处理,可以按数据集合分片来处理
* 当前线程名称=pool-1-thread-8
* 业务逻辑多线程处理,可以按数据集合分片来处理
* 当前线程名称=pool-1-thread-9
* 业务逻辑多线程处理,可以按数据集合分片来处理
* 当前线程名称=pool-1-thread-10
* 业务逻辑多线程处理,可以按数据集合分片来处理
* finish
*
*
* 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
* 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。
*/
public class CountDownLatchTest {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(10); //splitLists 按集合来多线程处理数据
//通过CountDownLatch 的使用 我们控制了线程的执行顺序
CountDownLatch countDownLatch = new CountDownLatch(10); System.out.println("begin");
for(int i= 0;i < 10; i++){
// System.out.println("i=" + i);
executorService.submit(() -> {
System.out.println("当前线程名称=" + Thread.currentThread().getName()); try {
//todo
System.out.println("业务逻辑多线程处理,可以按数据集合分片来处理");
} catch (Exception e) {
e.printStackTrace();
} finally {
countDownLatch.countDown();
System.out.println("countDown-" + Thread.currentThread().getName());
}
});
} // 等待所有线程完毕
try {
//await() 方法具有阻塞作用
countDownLatch.await();
System.out.println("finish");
} catch (InterruptedException e) {
e.printStackTrace();
} //结束
executorService.shutdown(); }
}

CountDownLatch demo演示数据分片多线程处理的更多相关文章

  1. 实时更新数据的jQuery图表插件DEMO演示

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  3. 【原创】NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示

    前言 NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能.这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2.而Netty的主要版本是Netty3和Netty ...

  4. 【原创】NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示

    申明:本文由作者基于日常实践整理,希望对初次接触MINA.Netty的人有所启发.如需与作者交流,见文签名,互相学习. 学习交流 更多学习资料:点此进入 推荐 移动端即时通讯交流: 215891622 ...

  5. 项目一:第十一天 2、运单waybill快速录入 3、权限demo演示-了解 5、权限模块数据模型 6、基于shiro实现用户认证-登录(重点)

    1. easyui DataGrid行编辑功能 2. 运单waybill快速录入 3. 权限demo演示-了解 4. Apache shiro安全框架概述 5. 权限模块数据模型 6. 基于shiro ...

  6. ShardingSphere数据分片

    码农在囧途 坚持是一件比较难的事,坚持并不是自欺欺人的一种自我麻痹和安慰,也不是做给被人的,我觉得,坚持的本质并没有带着过多的功利主义,如果满是功利主义,那么这个坚持并不会长久,也不会有好的收获,坚持 ...

  7. HTML5火焰文字特效DEMO演示

    效果展示:http://hovertree.com/texiao/html5/26/ 效果图: 扫描二维码查看效果:

  8. 适应手机端的jQuery图片滑块动画DEMO演示

    在线预览 下载地址 实例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...

  9. HTML5火焰文字特效DEMO演示---转载

    只有google支持 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

  10. MyCat 学习笔记 第十二篇.数据分片 之 分片事务处理

    1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150:  330 ...

随机推荐

  1. 慢SQL治理分享

    简介: 这里的慢SQL指的是MySQL慢查询,是运行时间超过long_query_time值的SQL.真实的慢SQL通常会伴随着大量的行扫描.临时文件排序或者频繁的磁盘flush,直接影响就是磁盘IO ...

  2. [Py] Python json str 字符串转为对象 (字典)

    import json json = '{"code": 0}' # Deserialize ``s`` (a ``str``, ``bytes`` or ``bytearray` ...

  3. python性能分析line_profiler

    在编程世界中,效率是王道.对于Python开发者来说,line_profiler 是一把锐利的剑,能够深入代码的每一行,找出性能瓶颈.今天,就让我们一起深入探索 line_profiler,学习如何用 ...

  4. 开源相机管理库Aravis例程学习(六)——camera-features

    目录 简介 例程代码 函数说明 arv_camera_get_integer arv_camera_get_string 简介 本文针对官方例程中的:04-camera-features做简单的讲解. ...

  5. Competition Set - 2023杭电多校

    关于代码太多导致太卡然后发现刚好可以放下HDU多校这回事. 那就稍微加点经历吧.team316. 第十场 今天发挥还行. 上来开03,一发过.然后做09,感觉就不难,过之.发现11是数学题,干,想了2 ...

  6. ITIL是标准吗?

    ITIL不是标准 OGC:是一个推荐的管理框架,一个模版,可根据运维实践自由裁量落地 itil诞生环境:欧美思维.欧美文化.欧美制度.欧美人文习惯.... 对欧美来说可能是最佳实践,但是对中国特色文化 ...

  7. 模型微调-书生浦语大模型实战营学习笔记4&大语言模型7

    大语言模型-7.模型微调 书生浦语大模型实战营学习笔记-4.模型微调 本节对应的视频教程为B站链接.笔记对视频的理论部分进行了整理.部分内容参考李宏毅2024春<生成式人工智能导论>和三分 ...

  8. python Requests 库的使用

    目录 1. 介绍 2. 安装 3. 基本请求 3.1 get请求 3.2 post请求 3.3 自定义请求头部 3.4 设置超时时间 3.5 代理访问 3.6 session自动保存cookies 3 ...

  9. ansible系列(27)--ansible的include任务复用

    目录 1. include任务复用 1.1 多个项目调用相同task 1.2 Inlcude结合tags应用 1. include任务复用 有时,我们发现大量的 Playbook 内容需要重复编写,各 ...

  10. Linux部署Apache 网站服务器(httpd服务)

    一.项目导入: 某学院组建了校园网,建设了学院网站.现需要架设Web服务器来为学院网站安家,同时在网站上传和更新时,需要用到文件上传和下载,因此还要架设FTP服务器,为学院内部和互联网用户提供WWW. ...