java多线程
qq_38089964
这个作者很懒,什么都没留下…
展开
-
多线程之栅栏CyclicBarrier
栅栏和闭锁功能类似,都是控制线程是否马上继续执行下去。区别就是:闭锁是让所有线程等待一组事件发生之后才能继续执行下去,而栅栏就是等待一组线程到达之后才继续执行下去。 就拿建筑工地举例:闭锁相当于大门,所有工人等待大门打开这个事件发生之后才能继续通过;而栅栏就是相当于一个接送车,每一个工人就是一个线程,等到车上上满之后,也就是指定的人到齐之后,车才能发动。 而栅栏相对闭锁的区别还有一点就是栅栏可...原创 2018-08-28 15:10:40 · 492 阅读 · 0 评论 -
多线程之闭锁CountDownLatch
闭锁可以理解为要达到一组需要完成的步骤之后才能让所有线程继续往下走;就像一个学校大门,所有的学生都想放学回家都堵在门口,这时候必须等到保安做完他的事才能放行(比如说上厕所),完事之后,一开大门,所有的学生(线程)才能通过大门,继续走。 这里写了一个很好理解的一个demo: package cn.wzy.regextest; import java.util.concurrent.Coun...原创 2018-08-13 14:26:02 · 190 阅读 · 0 评论 -
多线程、锁相关知识
多线程、锁 线程池 线程池的好处 1.资源利用率变高了 2.提高了响应速度 3.利于管理线程 实现原理(线程复用、管理线程): 线程复用原理: 解释:线程池中有几个工作类:本身是一个runnable,内部还有一个线程,启动线程也就是启动了本身; worker的任务就是不断从队列里面拉去任务,然后执行任务的run方法,也就是说每一个worker就是串行执行任务。 管理线程实现原理: 在Threa...原创 2018-12-21 14:06:04 · 165 阅读 · 0 评论 -
ScheduledThreadPoolExecutor实现原理
ScheduledThreadPoolExecutor运作在ThreadPoolExecutor的基础上,自定义实现任务队列,每次take()拉取任务的时候,返回运行优先级最高的队首元素。 构造函数:将自定义的阻塞队列作为参数放到ScheduledThreadPoolExecutor里面。 public ScheduledThreadPoolExecutor(int corePool...原创 2019-01-11 12:57:56 · 890 阅读 · 0 评论