本月博客排行
-
第1名
龙儿筝 -
第2名
johnsmith9th -
第3名
wy_19921005 - zysnba
- sgqt
- lemonhandsome
年度博客排行
-
第1名
宏天软件 -
第2名
青否云后端云 -
第3名
龙儿筝 - gashero
- wallimn
- vipbooks
- benladeng5225
- wy_19921005
- fantaxy025025
- e_e
- zysnba
- ssydxa219
- sam123456gz
- javashop
- arpenker
- tanling8334
- kaizi1992
- xpenxpen
- wiseboyloves
- xiangjie88
- ranbuijj
- ganxueyun
- sichunli_030
- xyuma
- wangchen.ily
- jh108020
- lemonhandsome
- zxq_2017
- jbosscn
- Xeden
- luxurioust
- lzyfn123
- zhanjia
- johnsmith9th
- forestqqqq
- ajinn
- nychen2000
- wjianwei666
- hanbaohong
- daizj
- 喧嚣求静
- silverend
- mwhgJava
- kingwell.leng
- lchb139128
- lich0079
- kristy_yy
- jveqi
- java-007
- sunj
最新文章列表
Jdk1.6 JUC源码解析(16)-FutureTask
Jdk1.6 JUC源码解析(16)-FutureTask
作者:大飞
功能简介:
FutureTask是一种异步任务(或异步计算),举个栗子,主线程的逻辑中需要使用某个值,但这个值需要复杂的运算得来,那么主线程可以提前建立一个异步任务来计算这个值(在其他的线程中计算),然后去做其他事情,当需要这个值的时候再通过刚才建立的异步任务来获取这个值,有点并行的意思,这样可以缩短整个主 ...
Jdk1.6 JUC源码解析(15)-SynchronousQueue
Jdk1.6 JUC源码解析(15)-SynchronousQueue
作者:大飞
功能简介:
SynchronousQueue是一种特殊的阻塞队列,它本身没有容量,只有当一个线程从队列取数据的同时,另一个线程才能放一个数据到队列中,反之亦然。存取过程相当于一个线程把数据(安全的)交给另一个线程的过程。
SynchronousQueue也支持公平和非公平模式。
源码分析: ...
Jdk1.6 JUC源码解析(14)-PriorityBlockingQueue
Jdk1.6 JUC源码解析(14)-PriorityBlockingQueue
作者:大飞
功能简介:
PriorityBlockingQueue是一种基于PriorityQueue实现的无界的阻塞队列。队列中的元素按照 ...
Jdk1.6 JUC源码解析(13)-LinkedBlockingQueue
Jdk1.6 JUC源码解析(13)-LinkedBlockingQueue
作者:大飞
功能简介:
LinkedBlockingQueue是一种基于单向链表实现的有界的(可选的,不指定默认int最大值)阻塞队列。队列中的元素遵循先入先出(FIFO)的规则。新元素插入到队列的尾部,从队列头部取出元素。(在并发程序中,基于链表实现的队列和基于数组实现的队列相比,往往具有更高的吞吐 ...
Jdk1.6 JUC源码解析(12)-ArrayBlockingQueue
Jdk1.6 JUC源码解析(12)-ArrayBlockingQueue
作者:大飞
功能简介:
ArrayBlockingQueue是一种基于数组实现的有界的阻塞队列。队列中的元素遵循先入先出(FI ...
Jdk1.6 JUC源码解析(11)-CyclicBarrier
Jdk1.6 JUC源码解析(11)-CyclicBarrier
作者:大飞
功能简介:
CyclicBarrier是一种可重复使用的栅栏机制,可以让一组线程在某个点上相互等待,这个点就可以类比为栅栏。并且这个栅栏是可重复使用的,这点可以和前面分析过的CountDownLatch做对比,CountDownLatch只能用一次。
CyclicBarrier还支持在所有线程到达栅 ...
Jdk1.6 JUC源码解析(10)-Semaphore
Jdk1.6 JUC源码解析(10)-Semaphore
作者:大飞
功能简介:
Semaphore是一种基于计数的信号量,管理了一组许可。线程可以申请许可,当信号量中有许可时,线程申请成功,拿走一个许可;没有许可时,线程阻塞等待其他线程用完了许可,归还给信号量。这个许可不是真正的许可(比如凭证),只是一个计数,线程也不会真正使用这些许可。
Semaphore一般用来构建一些 ...
Jdk1.6 JUC源码解析(9)-CountDownLatch
Jdk1.6 JUC源码解析(9)-CountDownLatch
作者:大飞
功能简介:
CountDownLatch是一种锁,称为闭锁。可以让一个或多个线程等待另外一个或多个线程执行完毕后再执行。
CountDownLatch也是基于AQS构建,使用共享模式。
CountDownLatch中提供一个count值来表示要等待的(其他任务)完成次数,常规用法有两种:Count ...
Jdk1.6 JUC源码解析汇总
Jdk1.6 JUC源码解析汇总
Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX
Jdk1.6 JUC源码解析(2)-atomic-AtomicXXXArray
Jdk1.6 JUC源码解析(3)-atomic-AtomicXXXFieldUpdater
Jdk1.6 JUC源码解析(4)-atomic-AtomicStampedRefere ...
Jdk1.6 JUC源码解析(8)-locks-ReentrantReadWriteLock
Jdk1.6 JUC源码解析(8)-locks-ReentrantReadWriteLock
作者:大飞
功能简介:
ReentrantReadWriteLock提供了读写锁的机制,读锁使用AQS的共享模式,写锁使用独 ...
Jdk1.6 JUC源码解析(7)-locks-ReentrantLock
Jdk1.6 JUC源码解析(7)-locks-ReentrantLock
作者:大飞
功能简介:
Java代码层面提供的锁机制,可做为Synchronized(jvm内置)的替代物,和Synchronized一样都是 ...
Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer
Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer
作者:大飞
功能简介:
AbstractQueuedSynchronizer(以下简称AQS)是Java并发包提供的一个同步基础机制,是并发包中实现Lock和其他同步机制(如:Semaphore、CountDownLatch和FutureTask等)的基础。
AQS内部包含一 ...
Jdk1.6 JUC源码解析(4)-atomic-AtomicStampedReference、AtomicMarkableReference
Jdk1.6 JUC源码解析(4)-atomic-AtomicStampedReference、AtomicMarkableReference
作者:大飞
功能简介:
为了避免CAS过程中的ABA问题,并发包提供了两个类,AtomicStampedReference和AtomicMarkableReference。前者相当于一个[引用,integer]的二元组,后者相当于一个[引用 ...
Jdk1.6 JUC源码解析(3)-atomic-AtomicXXXFieldUpdater
Jdk1.6 JUC源码解析(3)-atomic-AtomicXXXFieldUpdater
作者:大飞
功能简介:
原子域更新器,一般用于一些原子同步结构中。
源码分析:
首先看下AtomicIntegerFieldUpdater,AtomicIntegerFieldUpdater本身是一个抽象类,提供了一个静态工厂方法来生成实例:
pu ...
Jdk1.6 JUC源码解析(2)-atomic-AtomicXXXArray
Jdk1.6 JUC源码解析(2)-atomic-AtomicXXXArray
作者:大飞
功能简介:
数组原子量。
源码分析:
和原子量一样,数组原子量内部有一个Unsafe的静态引用。
private static final Unsafe unsafe = Unsafe.getUnsafe();
...
Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX
Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX
作者:大飞
功能简介:
原子量和普通变量相比,主要体现在读写的线程安全上。对原子量的是原子的(比如多线程下的共享变量i++就不是原子的),由CAS操作保证原子性。对原子量的读可以读到最新值,由volatile关键字来保证可见性。
原子量多用于数据统计(如接口调用次数)、一些序列生成(多线程环境下)以及一 ...
ExecutorService | Executor框架
Excutor框架结构图:
上一篇讲了Executor接口,本篇来讲一下ExecutorService接口,从图中可以看出ExecutorService扩展了Executor接口,一般扩展后,都会新增一些功能方法,它有哪些新方法呢?
一:关于ExecutorService的源码
package java.util.concurrent;
import java.util ...
JUC--Parser
Java 7的并发包中推出了Phaser,其功能跟CyclicBarrier和CountDownLatch有些重叠,但是提供了更灵活的用法,例如支持动态调整注册任务的数量等
别人的牛逼的blok: http://whitesock.iteye.com/blog/1135457
package com.test.uuu;
import java.util.concurrent.Phas ...
JUC--Exchanger
Exchanger 用于线程之间数据交换,通过exchanger.exchange(obj) 这个方法交换
如果第一个线程执行到exchange方法,它会等待第二个线程也执行到exchange,
当两个线程都执行到同步点时,这两个线程就可以交换数据。
个人感觉可以做生产者和消费者呢,什么时候交换要有个交换策略的哈。
package com.test.uuu;
import java.u ...