摘要: 字面意思回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行。 java.util.concurrent.CyclicBarrier 类是一种同步机制,它能够对处理一些算法的线程实现同步。换句话讲,它就是一个所有线程必须等待的一个栅栏,直到所有线程都到达这里,然后所有线程才可以继续做其 阅读全文
posted @ 2018-12-20 16:03 qjm201000 阅读(262) 评论(0) 推荐(0) 编辑
摘要: java.util.concurrent.CountDownLatch 是一个并发构造,它允许一个或多个线程等待一系列指定操作的完成。 CountDownLatch 以一个给定的数量初始化。countDown() 每被调用一次,这一数量就减一。通过调用 await() 方法之一,线程可以阻塞等待这一 阅读全文
posted @ 2018-12-20 15:18 qjm201000 阅读(235) 评论(0) 推荐(0) 编辑
摘要: ConcurrentMap 是个接口,你想要使用它的话就得使用它的实现类之一。 ConcurrentMap,它是一个接口,是一个能够支持并发访问的java.util.map集合; 在原有java.util.map接口基础上又新提供了4种方法,进一步扩展了原有Map的功能: putIfAbsent:与 阅读全文
posted @ 2018-12-20 11:48 qjm201000 阅读(449) 评论(0) 推荐(0) 编辑
摘要: LinkedBlockingDeque是双向链表实现的阻塞队列。该阻塞队列同时支持FIFO和FILO两种操作方式,即可以从队列的头和尾同时操作(插入/删除); 在不能够插入元素时,它将阻塞住试图插入元素的线程;在不能够抽取元素时,它将阻塞住试图抽取的线程。; LinkedBlockingDeque还 阅读全文
posted @ 2018-12-19 22:14 qjm201000 阅读(357) 评论(0) 推荐(0) 编辑
摘要: java.util.concurrent 包里的 BlockingDeque 接口表示一个线程安放入和提取实例的双端队列。 BlockingDeque 类是一个双端队列,在不能够插入元素时,它将阻塞住试图插入元素的线程;在不能够抽取元素时,它将阻塞住试图抽取的线程。 deque(双端队列) 是 “D 阅读全文
posted @ 2018-12-19 22:11 qjm201000 阅读(368) 评论(0) 推荐(0) 编辑
摘要: SynchronousQueue:同步Queue,属于线程安全的BlockingQueue的一种,此队列设计的理念类似于"单工模式",对于每个put/offer操作,必须等待一个take/poll操作,类似于我们的现实生活中的"火把传递":一个火把传递地他人,需要2个人"触手可及"才行. 因为这种策 阅读全文
posted @ 2018-12-19 21:50 qjm201000 阅读(465) 评论(0) 推荐(0) 编辑
摘要: PriorityBlockingQueue是一个支持优先级的无界阻塞队列。 它使用了和类 java.util.PriorityQueue 一样的排序规则。你无法向这个队列中插入 null 值。 所有插入到 PriorityBlockingQueue 的元素必须实现 java.lang.Compara 阅读全文
posted @ 2018-12-19 17:15 qjm201000 阅读(216) 评论(0) 推荐(0) 编辑
摘要: LinkedBlockingQueue是一个基于链表的阻塞队列。 由于LinkedBlockingQueue实现是线程安全的,实现了先进先出等特性,是作为生产者消费者的首选。 LinkedBlockingQueue 可以指定容量,也可以不指定,不指定的话,默认最大是Integer.MAX_VALUE 阅读全文
posted @ 2018-12-19 15:20 qjm201000 阅读(312) 评论(0) 推荐(0) 编辑
摘要: DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。注意:不能将null元素放置到这种队列中。 Delayed 一种混合风格的接口,用来标记那些应该在给定延迟时间 阅读全文
posted @ 2018-12-19 11:08 qjm201000 阅读(407) 评论(0) 推荐(0) 编辑
摘要: ArrayBlockingQueue类是实现了BlockingQueue. ArrayBlockingQueue是一个有界的阻塞队列,其内部实现是将对象放在一个数组中。 放入元素方法: (1) add(object) 队列没满的话,放入成功。否则抛出异常(java.lang.IllegalState 阅读全文
posted @ 2018-12-18 15:20 qjm201000 阅读(315) 评论(0) 推荐(0) 编辑