线程池 妖狐艹你老母 2022-05-20 02:35 283阅读 0赞 **西施越溪女,明艳光云海** 最近用线程池和不用线程池做了个速度的测试,在这里备注下: 结果是速度不相上下; public static void main(String[] args) throws Exception { notPool();//非线程池 pool();//线程池 } public static void notPool() { Long start = System.currentTimeMillis(); final CountDownLatch latch = new CountDownLatch(80); //计数器类 for (int i = 0; i < 80; i++) { new Thread(new Runnable() { @Override public void run() { for (int i = 0; i < 10000; i++) { System.out.println(i); } latch.countDown(); //减少锁存器的计数,如果计数达到零,则释放所有等待线程。 } }).start(); } try { latch.await(); //使当前线程等待,知道latch计数为0 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("耗时:" + (System.currentTimeMillis() - start) / 1000 + "秒"); } public static void pool() { Long start = System.currentTimeMillis(); ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 100, 200, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(5)); for (int j = 0; j < 80; j++) { executor.execute(new Runnable() { @Override public void run() { System.out.println("线程名:" + Thread.currentThread().getName()); for (int i = 0; i < 10000; i++) { System.out.println(i); } } }); } executor.shutdown(); //不会立即终止线程池,而是要等所有任务缓存队列中的任务都执行完后才终止,但再也不会接受新的任务 while (true) { if (executor.isTerminated()) { //如果关闭后所有任务都已完成,则返回 true。注意,除非首先调用 shutdown 或 shutdownNow,否则 isTerminated 永不为 true。 System.out.println("耗时:" + (System.currentTimeMillis() - start) / 1000 + "秒"); break; } } } 关于CountDownLatch类的理解,可以看看这篇:[CountDownLatch的简单理解][CountDownLatch] [CountDownLatch]: https://blog.csdn.net/joenqc/article/details/76794356
相关 Java 线程池、Runnable线程池、Callable线程池 线程池: 其实就是一个容纳多个线程的容器,其中的线程可以反复的使用,省去了频繁创建和销毁过程对象的操作,无需反复创建线程面消耗过多资源。 为什么要用线程池: 合理 青旅半醒/ 2023年02月26日 12:30/ 0 赞/ 52 阅读
相关 线程、线程池 创建线程的3种方法: package com.frank.threadPool.createThread; / @author 小石潭记 布满荆棘的人生/ 2022年10月22日 04:27/ 0 赞/ 385 阅读
相关 线程池 1.所谓线程池,就是程序的初始化阶段,就预先创建一批线程,每个线程都做好准备干活; 2.然后有一个任务列表,一开始为空,当有任务来了,就往任务列表里面添加;这个任务列表 痛定思痛。/ 2022年06月13日 13:22/ 0 赞/ 330 阅读
相关 线程池 西施越溪女,明艳光云海 最近用线程池和不用线程池做了个速度的测试,在这里备注下: 结果是速度不相上下; public static void main(Str 妖狐艹你老母/ 2022年05月20日 02:35/ 0 赞/ 284 阅读
相关 线程池 线程池 Java里面线程池的顶级接口是 java.util.concurrent.Executor , 但是严格意义上讲 Executor并不是一个线程池,而只是一个 迈不过友情╰/ 2022年03月06日 14:34/ 0 赞/ 402 阅读
相关 线程池 线程池 > 从字面义上来讲,是指管理一组同构工作线程的资源池。线程池是与工作队列密切相关的,其中在工作队列中(Worker Queue)保存了所有等待执行的任务。工作者( 清疚/ 2021年12月11日 03:35/ 0 赞/ 389 阅读
相关 线程池 可preStart一个或全部core thread 0,小于core则来一个任务建一个线程(firstTask),队列,额外线程,拒绝 一个AtomicInteger的 今天药忘吃喽~/ 2021年11月23日 03:40/ 0 赞/ 412 阅读
相关 线程池 1、先创建线程池 import java.util.concurrent.ArrayBlockingQueue; import java.util.concu 拼搏现实的明天。/ 2021年11月09日 14:28/ 0 赞/ 422 阅读
还没有评论,来说两句吧...