
Java Thread
文章平均质量分 75
mmlz00
这个作者很懒,什么都没留下…
展开
-
Java线程--ForkJoin框架
ForkJoin框架目录ForkJoin框架ForkJoin简介ForkJoin核心类ForkJoinPool线程池RecursiveTask有返回值任务 RecursiveAction无返回值任务ForkJoin原理forkjoinsubmitForkJoin示例原始for-loop求和ForkJoinPool线程池示例 Threa...原创 2018-11-21 17:18:33 · 454 阅读 · 0 评论 -
Java线程--AtomicReference<T>原子对象
AtomicReference<T>原子对象AtomicReference<T>作用是对”对象”T进行原子操作。不使用引用变量,而是把对象存储在一个AtomicReference<T>之中,不过需要说明的是,这样的编程,并不会让对象本身也是线程安全的,只是该引用变量的获取和设置是线程安全的。除了AtomicReference<T>...原创 2018-11-03 23:54:54 · 1181 阅读 · 0 评论 -
Java线程--CountDownLatch倒计数器
CountDownLatch倒计数器目录CountDownLatch倒计数器CountDownLatch场景CountDownLatch原理CountDownLatch示例 CountDownLatch场景 想要做当前事情之前,必须具备前期的若干事件都准备完毕,当前事件才能进行。用程序来说,就是:当前线程处于阻塞状态,必须等到其它的若干线程都运行完毕之后,当前线...原创 2018-11-04 19:27:07 · 173 阅读 · 0 评论 -
Java线程--LockSupport阻塞/唤醒工具类
LockSupport线程阻塞/唤醒工具类目录LockSupport线程阻塞/唤醒工具类LockSupport原理 LockSupport示例LockSupport原理 LockSupport类,是个工具类。内部的实现是调用sun.misc.Unsafe(rt.jar包中)这个native本地类中的方法实现的,Unsafe本地类是用C++写的。可以说concurre...原创 2018-11-05 13:08:59 · 333 阅读 · 0 评论 -
Java线程--CyclicBarrier循环屏障
CyclicBarrier循环屏障目录CyclicBarrier循环屏障CyclicBarrier原理 CyclicBarrier示例 CyclicBarrier和CountDownLatch区别CyclicBarrier原理 下面是部分源码,以及源码中调用相关类的部分源码剖析: public class CyclicBarrier { ...原创 2018-11-05 16:17:05 · 223 阅读 · 0 评论 -
Java线程--Exchanger<T>交换器
Exchanger<T>交换器目录Exchanger交换器Exchanger概念 Exchanger示例 Exchanger和Semaphore区别 借花献佛Exchanger<T>概念 上图业务场景描述:A有球,想要和B的鱼交互,整个交互过程描述如下:A在准备素材,球,准备的比较快,然后就发出交换诉求,exchange(球),...原创 2018-11-05 22:26:45 · 666 阅读 · 0 评论 -
Java线程--Phaser阶段器
Phaser阶段器目录Phaser阶段器Phaser概念 Phaser示例1Phaser示例2 Phaser比CountDownLatch灵活 Phaser比CyclicBarrier灵活Phaser总结 一、简述二、常用的Barrier比较三、APIPhaser概念 Phaser表示“阶段器”,用来解决控制多个线程分阶段共同完成大型任务的...原创 2018-11-06 17:04:17 · 354 阅读 · 1 评论 -
Java线程--线程池原理
目录ThreadPoolExecutor为什么用线程池 传统的方式编写多线程:线程池的方式编写多线程:线程池简介 线程池工作原理 线程池的构造函数:线程池工作原理描述:线程池工作原理图解:线程池工作原理的流程图:线程池的安全策略:线程池的三种队列:线程池的线程为什么不回收:execute()方法:addWorker()方法:new W...原创 2018-11-07 22:11:48 · 824 阅读 · 3 评论 -
Java线程--线程池ctl
线程池ctl线程池ctl源码打开ThreadPoolExecutor的源码(我裁剪掉了一部分),一开始就会发现:public class ThreadPoolExecutor extends AbstractExecutorService { /** 我以一个字节8位来简化解释线程池对运行状态和当前有效线程个数的原子管理方案 * 线程池当中,用一个ctl原子变...原创 2018-11-09 14:32:46 · 3379 阅读 · 2 评论 -
Java线程--Thread基础
目录Thread基础线程带来的风险 安全性问题 活跃性问题性能问题糟糕的样例:分析并发语义后的样例:进一步调优的样例:一组相关状态的封装成immutable的不可变性线程中的术语概念 原子性操作状态一致性竞态条件数据竞争可见性有序性原子性线程的同步手法synchronizedvolatilelock基于AQS的...原创 2018-11-09 15:03:58 · 195 阅读 · 0 评论 -
Java线程--线程池Future、Callable
Future、Callable配套使用Runnable与Callable区别:Runnable接口:一个独立的任务,任务执行的结果,无需告知主线程Runnable接口中的方法为:void run(){}Callable接口:也是一个独立的任务,但是任务执行的结果,是主线程想要知晓的,因此可以配套Future接口,在将来的某个时间点,主线程可以获取到独立任务的执行结果,以便主...原创 2018-11-20 16:09:13 · 197 阅读 · 0 评论 -
Java线程--Semaphore信号量
Semaphore信号量目录Semaphore信号量示例1:生产者消费者----产1消1模式产1消1:业务说明示例2:多信号指示灯----停车场停车场:业务说明 Semaphore是计数信号量。Semaphore可管理1个或多个许可证。acquire()方法尝试获取一个许可证,如果没有获得到,当前线程阻塞,直至其它线程的release()方法释放出来一个许可证;...原创 2018-11-03 17:33:29 · 289 阅读 · 1 评论