codeing-java
小步走 不停步 等于前进一大步.
volatile的内存语义 volatile的内存语义
volatile的特性 volatile修饰的变量可以禁止指令重排序和保证了内存可见性和单一操作的原子性,类似i++这样的复合操作的原子性保
2019-04-05
并发编程-深入理解线程池ThreadPoolExecutor 并发编程-深入理解线程池ThreadPoolExecutor
概述 使用线程池技术可以降低资源的消耗,提高响应速度和线程的可重复利用性 当提交一个新任务到线程池后,线程池首先会判断核心线程池(coreP
2019-03-31
并发编程-深入理解阻塞队列ArrayBlockingQueue源码 并发编程-深入理解阻塞队列ArrayBlockingQueue源码
概述 ArrayBlockingQueue是一个由数组构成的有界阻塞队列,此队列按 FIFO(先进先出)原则对元素进行排序,支持公平和非公平
2019-03-30
并发编程-深入理解ConcurrentLinkedQueue源码 并发编程-深入理解ConcurrentLinkedQueue源码
概述 ConcurrentLinkedQueue是一个基于链接节点的无边界的线程安全队列,它采用先进先出原则对元素进行排序,插入元素放入队列
2019-03-29
并发编程-深入理解ThreadLocal源码 并发编程-深入理解ThreadLocal源码
概述 ThreadLocal 是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰。
2019-03-28
并发编程-深入理解Semaphore源码 并发编程-深入理解Semaphore源码
概述 Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。 比如数据库的连接资源是非常有限的,如果同时有上千个线程去
2019-03-24
并发编程-深入理解CyclicBarrier同步屏障源码 并发编程-深入理解CyclicBarrier同步屏障源码
概述 CyclicBarrie允许让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截
2019-03-23
并发编程-深入理解CountDownLatch源码 并发编程-深入理解CountDownLatch源码
概述 允许一个线程的或多个线程等待其他线程完成操作。和join方法类似,初始化对象时通过传入一个固定的计数器总数,线程方法执行时调用coun
2019-03-22
并发编程-深入理解ReentrantReadWriteLock读写锁 并发编程-深入理解ReentrantReadWriteLock读写锁
概述 ReentrantReadWriteLock内部维护了一对锁,读锁和写锁。支持重入和公以及平非公平模式。读锁是共享式的,多个线程可以并
2019-03-21
并发编程-深入理解ReentrantLock 并发编程-深入理解ReentrantLock
什么是ReentrantLock ReentrantLock是一个可重入的互斥锁锁, 实现Lock接口。具有与使用 synchronized
2019-03-20
并发编程-深入理解AQS(队列同步器) 并发编程-深入理解AQS(队列同步器)
什么是AQS AbstractQueuedSynchronizer是一个队列同步器,是用来构建锁和其它同步组件的基础框架,它使用一个vola
2019-03-19