多线程
Orange_橙子先生
一步一个脚印,坚持学习,成为一名优秀的程序员!
展开
-
Java并发编程之ThreadPoolExecutor源码解析
前言:在我们日常的并发编程中,如果每一个请求都对应一个线程,这样不仅线程的创建和销毁都将很占用资源,也会给系统带来巨大的压力,很容易造成系统崩溃。鉴于此,线程池的出现就很好的化解了这一问题。线程的池化就是指创建指定个数的线程放到容器中,有任务的时候线程会去执行,任务处理完就会放回线程池等待其他执行其他任务。如此就可以做到线程的重复使用。 一:ThreadPoolExecutor中重要的成员变量 private final AtomicInteger ctl = new AtomicInteger(ctlOf原创 2020-05-10 13:10:38 · 346 阅读 · 0 评论 -
Java并发编程之CyclicBarrier
CyclicBarrier CyclicBarrier明面上翻译是循环栅栏的意思。差不多是到了指定的人数把栅栏推到,放人出去,出去后栅栏又被扶起来,再来人,满了,推倒之后又被扶起,如此往复。 下面通过两个场景来分析 CyclicBarrier 的具体用法: 场景一:现在需要访问数据库、需要访问网络、需要访问文件系统等,必须这些都完成后才可以进行下面的操作。如果串行化处理效率不高,可以先并行处理后...原创 2020-04-26 17:05:55 · 194 阅读 · 0 评论 -
Java并发编程之CountDownLatch
CountDownLatch CountDown 的意思是倒数,latch是门栓的意思,连起来就可以翻译为倒数的门栓。在我们Java体现的意思就是:在多线程的环境下,你可以规定有10个门栓(即10个线程在干活),当门栓数减到零(即每个线程完成自己的任务后会把门栓数减一,10个线程都完成后门栓数就减到了零),就可以统一执行接下来的任务。 接下来我们通过三个场景来了解 CountDownLatch 的...原创 2020-04-22 10:49:03 · 317 阅读 · 0 评论