2019独角兽企业重金招聘Python工程师标准>>>

因为要定时往数据库插入上百万数据,插入完之后再修改另外一部分数据, 怎么在线程池执行完所有任务后再执行主线程呢

import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class Test {public static ExecutorService executorService = Executors.newCachedThreadPool(); private static CountDownLatch cdl = new CountDownLatch(10);private static final Random random = new Random();public void test() {for (int i = 0; i < 10; i++) executorService.execute(new ThreadTest());}public static void main(String[] args) {new Test().test();//插入数据完成后  执行修改操作try { cdl.await();} catch (InterruptedException e) {}System.out.println("它们已经插完啦..............................");executorService.shutdown();}class ThreadTest implements Runnable {public void run() {//执行插入数据操作  每次插入一条// 模拟耗时int time = random.nextInt(10000);try {Thread.sleep(time);} catch (InterruptedException e) {}System.out.println(Thread.currentThread().getName() + "执行完了,耗时:" + time / 1000 + "秒");cdl.countDown();}}
}

转载于:https://my.oschina.net/u/2462659/blog/1541693

Java等线程池执行完所有任务后再执行主线程相关推荐

  1. jquery 执行完动画后再执行别的操作

    //.animate( properties [, duration ] [, easing ] [, complete ] ) //complete参数是完成动画后要执行的东西$(this).ani ...

  2. java 线程执行完就会回收吗_Java线程池技术Executors的这个坑你踩过吗?

    线程池技术是Java的一大特性,如果我们想要编写高并发.高吞吐的程序,线程池的技术使用是必须的.对于很多程序员来说,多线程和线程池技术都了然于胸,基本原理和使用都数量掌握,分分钟可以写出一个生产消费者 ...

  3. java怎么让main方法不退出_JAVA线程池原理源码解析—为什么启动一个线程池,提交一个任务后,Main方法不会退出?...

    public static void main(String[] args) { ExecutorService service = Executors.newFixedThreadPool(10); ...

  4. java线程池队列大小_GitHub - sunshanpeng/dark_magic: 合理估算线程池大小及队列数

    合理估算java的线程池大小及队列数 原理分析 先来一个天真的估算方法:假设要求一个系统的TPS(Transaction Per Second或者Task Per Second)至少为20,然后假设每 ...

  5. java线程池拒绝策略_Java核心知识 多线程并发 线程池原理(二十三)

    线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后 启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕, 再从队列中取出任务来执行.他 ...

  6. java线程池应用的好处_java高级应用:线程池全面解析

    什么是线程池? 很简单,简单看名字就知道是装有线程的池子,我们可以把要执行的多线程交给线程池来处理,和连接池的概念一样,通过维护一定数量的线程池来达到多个线程的复用. 线程池的好处 我们知道不用线程池 ...

  7. Java:多线程,线程池,用Executors静态工厂生成常用线程池

    一: newSingleThreadExecutor 创建一个单线程的线程池,以无界队列方式运行.这个线程池只有一个线程在工作(如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它.)此线程池 ...

  8. Java线程池七个参数详解:核心线程数、最大线程数、空闲线程存活时间、时间单位、工作队列、线程工厂、拒绝策略

    源码简介 ThreadPoolExecutor是JDK中的线程池实现,这个类实现了一个线程池需要的各个方法,它提供了任务提交.线程管理.监控等方法. 下面是ThreadPoolExecutor类的构造 ...

  9. boost创建线程池_Java并发 之 线程池系列 (1) 让多线程不再坑爹的线程池

    目录 背景 线程池的来由 什么是线程池 背景总结 用法 通过Executors创建线程池 Executors及其服务的类 Executors常用的几个方法 一个线程池的例子 任务 池子 测试 说明 总 ...

最新文章

  1. Vbox在Linux 5上安装Oracle 11gR2 RAC
  2. 武汉python培训哪一家好一些-武汉哪个Python培训机构比较好?
  3. 云炬随笔20160914
  4. CF932F-Escape Through Leaf【树上启发式合并,CDQ分治,斜率优化dp】
  5. 申请美国计算机科学,美国计算机科学的申请特点
  6. 拜托!这才是分布式系统CAP的正确打开方式!
  7. 检测php常量是否存在,php判断变量常量是否存在
  8. 读取classpath配置文件的方法
  9. Operation和OperationQueue实战:异步下载图片并给图片加滤镜
  10. office2016 + visio2016
  11. pycharm 输入法光标跟随
  12. AI语音技术的应用与发展前景
  13. python初级数据分析师薪资_数据分析师的薪酬大约是多少?
  14. Java实现线性回归模型算法
  15. 如何从官网下载STM32固件库
  16. 笔记本电脑快速连接手机热点的方法
  17. mysql(Navicat)数据库报错1166
  18. ERR_UNSAFE_PORT解决以及所有非安全端口
  19. Day0001:代码诉说for循环的顺序
  20. 亚马逊云AWS认证助理工程师题库第四题

热门文章

  1. css中英文混合实现两端对齐
  2. 安卓Queue的使用
  3. IntelliJ IDEA(二) :面板介绍
  4. BZOJ 2720 [Violet 5]列队春游 ——期望DP
  5. 8.5 趣味游戏(2)
  6. 计算机科学家Erik Meijer眼中的Hacker Way工作方式
  7. HTML5来到,原生Native APP是否还有市场
  8. Sketch小技巧—画出各种星型和多边形的简单方法
  9. python基于happybase对hbase增删改查-thrift1
  10. CT流程与CT图像的windowing操作(转载+整理)