加载中
使用Semaphore实现阻塞队列

Semphore也可以用于实现生产者消费者队列,ArrayBlockingQueue也是使用ReentrantLock的2个condition,来判断empty和full,和下面用2个semaphore控制道理是差不多的,有兴趣可以看下ArrayBloc...

2014/05/28 18:04
1K
使用ReentrantReadWriteLock进行线程通信

使用ReentrantReadWriteLock读读写锁,来实现一个阻塞队列,可以和之前的ReentrantLock的Condition比较

2014/05/28 12:41
54
使用ReentrantLock实现线程通信

使用ReentrantLock和一对Condition实现一个阻塞队列,优势是使用lock可以对读写分别加锁,可以和之前Thread的wait和notify比较

2014/05/28 12:39
1K
使用Thread的wait和notify方法实现线程通信

使用Thread自带的wait和notify方法,实现一个阻塞队列,后续会给出基于juc包的实现

2014/05/28 12:37
40
JUC学习之ConcurrentLinkedQueue

ConcurrentLinedQueue是一个基于链表的无界队列(其实是有界的,它的长度是int类型)。基于wait-free算法,适合多个线程读取的场景,出队和入队使用2把锁,性能比ArrayBlockingQueue快,当然...

2014/05/28 11:23
319
JUC学习之ArrayBlockingQueue

ArrayBlockingQueue是一个基于数组的有界队列,提供阻塞特性,此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短...

2014/05/28 11:05
94
Semaphore 初始化的许可数

Semaphore初始化给的许可数,只是初始许可,不代表许可的最大值,每release一次,都会增加一次许可,做流控的时候,需要特别注意

2014/05/28 09:36
184
JUC学习之ThreadPool

JUC下的线程池一般是使用ExecutorService接口,该接口实现了Executor接口,用于执行同步或者异步的任务

2014/05/21 15:17
102
JUC学习之FutureTask

FutureTask实现了Future接口,用于可取消的异步计算,计算尚未完成,则get方法一直阻塞,可使用FutureTask包装Callable或者Runnable对象,实现了Runnable可将FutureTask提交给Executor线程池...

JUC学习之Exchanger

JUC下的Exchanger,可用于两个线程间对信息进行交换,在某些遗传算法或者管道设计中很有用

2014/05/21 14:39
38
JUC学习之Semaphore

Semaphore是juc下的一个用于控制访问某些资源的线程数目

2014/05/21 14:35
66
JUC学习之AtomicInteger

AtomicInteger变量的很多操作,使用CAS实现,是具有完全的同步语义,适合做一些线程安全的控制

2014/05/21 14:30
100
JUC学习之CountDownLatch

Java Util Concurrent 包下的CountDownLatch学习

2014/05/04 22:12
231
JUC包学习之CyclicBarrier

Java Util Concurrent 包学习之 CyclicBarrier,和CountDownLatch的最大区别之一是,CyclicBarrier可以重用,而CountDownLatch不可以。见例子中的再来一次...

2014/05/04 21:54
111

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部