并发编程
lldouble
这个作者很懒,什么都没留下…
展开
-
《深入浅出 Java Concurrency》目录
这是一份完整的Java 并发整理笔记,记录了我最近几年学习Java并发的一些心得和体会。 J.U.C 整体认识原子操作 part 1 从AtomicInteger开始原子操作 part 2 数组、引用的原子操作原子操作 part 3 指令重排序与happens-before法则原子操作 part 4 CAS操作锁机制 part 1 Lock与ReentrantLock锁机制 part 2 AQS锁...转载 2018-05-19 17:10:59 · 324 阅读 · 0 评论 -
深入理解Java之线程池
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲...转载 2018-05-15 12:58:26 · 122 阅读 · 0 评论 -
一张图让你看懂JAVA线程间的状态转换
线程间的状态转换: 1. 新建(new):新创建了一个线程对象。2. 可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。3. 运行(running):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。4. 阻塞(block...转载 2018-07-04 17:15:19 · 147 阅读 · 0 评论 -
LockSupport原理剖析
LockSupport 用法简介LockSupport 和 CAS 是Java并发包中很多并发工具控制机制的基础,它们底层其实都是依赖Unsafe实现。LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport 提供park()和unpark()方法实现阻塞线程和解除线程阻塞,LockSupport和每个使用它的线程都与一个许可(permit)关联。permit相当于...转载 2018-07-06 11:38:33 · 5359 阅读 · 0 评论 -
AQS的原理浅析
本文是《Java特种兵》的样章,本书即将由工业出版社出版AQS的全称为(AbstractQueuedSynchronizer),这个类也是在java.util.concurrent.locks下面。这个类似乎很不容易看懂,因为它仅仅是提供了一系列公共的方法,让子类来调用。那么要理解意思,就得从子类下手,反过来看才容易看懂。如下图所示:图 5-15 AQS的子类实现这么多类,我们看那一个?刚刚提到过...转载 2018-07-06 14:37:46 · 6591 阅读 · 0 评论