- 浏览: 73484 次
文章分类
最新评论
-
kevinflynn:
...
ThreadLocal 源码分析 -
kevinflynn:
[url=aaaa][/url]
ThreadLocal 源码分析 -
kevinflynn:
学习到了 感谢楼主。
ThreadLocal 源码分析
public interface BlockingQueue<E> extends Queue<E> {
/**
* 插入指定元素到队列中,如果没有超出容量限制的话, 插入成功,返回 true. 如果没有空间的话,抛出 IllegalStateException.
* 当使用有容量限制的队列(queue)时,通常最好是使用 offer(Object) 方法.
*
*/
boolean add(E e);
/**
* 插入指定元素到队列中,如果没有超出容量限制的话, 插入成功,返回 true, 如果没有空间的话返回 false.
* 当使用有容量限制的队列时,这个方法比 add 方法更好(当插入失败的时候,抛异常).
*
*/
boolean offer(E e);
/**
* 插入指定元素到队列中,必要时等待空间可用.
*
*/
void put(E e) throws InterruptedException;
/**
* 插入指定元素到队列中,必要时等待指定的时间等待元素可用.
*
*/
boolean offer(E e, long timeout, TimeUnit unit)
throws InterruptedException;
/**
* 检索并删除队列的头部,必要时等待直到元素可用.
*
*/
E take() throws InterruptedException;
/**
* 检索并移除队列的头部,必要时等待指定的时间等待元素可用.
*
*/
E poll(long timeout, TimeUnit unit)
throws InterruptedException;
/**
*
* 返回这个队列在理想状态下可以非阻塞接收的元素的个数。如果没有明确指定队列容量,那么就返回Integer.MAX_VALUE.
* 注意:无法总是判断尝试插入一个元素是否成功通过检查 remainingCapacity 方法. 因为可能存在这么一种情况,另外一个线程
* 即将插入或者移除一个元素.
*
*/
int remainingCapacity();
/**
*
* 从队列中删除指定元素的单个实例,如果它存在的话. 更正式的说,删除元素 e(o.equals(e)), 如果队列
* 中包含一个或者多个这样的元素. 如果此队列包含指定的元素,则返回 true(或者等效的说,如果此队列因调用
* 这个方法而发生了更改).
*
*/
boolean remove(Object o);
/**
* 如果此队列包含指定元素,则返回 true. 更正式的说,如果这个队列中包含至少一个 e(o.equals(e))
* 这种情况下才返回 true.
*
*/
public boolean contains(Object o);
/**
*
* 删除此队列中的所有可用元素并将它们添加到给定的集合中. 这个操作比反复 polling 这个队列更加有效.
* 当相关的异常抛出时,可能会导致将元素添加到集合c的过程中该元素不在任何一个集合中。尝试将一个队列中的
* 元素批量保存到队列本身会抛出IllegalArgumentException.
* 当在执行 drainTo 的过程中如果指定的集合 c 被修改了,那么这种情况产生的结果是未知的.
*
*/
int drainTo(Collection<? super E> c);
/**
*
* 将指定数量的元素从队列中删除,并保存到指定的集合中.
* 当相关的异常抛出时,可能会导致将元素添加到集合 c 的过程中该元素不在任何一个集合中.
* 尝试将一个队列中的元素批量保存到队列本身会抛出 IllegalArgumentException.
* 当在执行 drainTo 的过程中如果指定的集合 c 被修改了,那么这种情况产生的结果是未知的.
*/
int drainTo(Collection<? super E> c, int maxElements);
}
发表评论
-
AtomicInteger 源码分析
2019-01-24 16:11 960AtomicInteger 是如何实现原子操作的了? 答案是 ... -
SynchronousQueue 源码初步分析
2019-01-23 16:56 1196简介: 就是一个 put 操作必须和 take 操作对应. 如 ... -
LinkedBlockingDeque 源码分析
2019-01-22 16:44 1411简介: LinkedBlockingDeque 是一个双端队 ... -
CopyOnWriteArrayList 源码分析
2019-01-19 16:02 1326简介: 写操作时上锁,然后拷贝一个新的数组,操作新数组,将当 ... -
CyclicBarrier 源码分析
2019-01-19 13:55 1468简介: CyclicBarrier 实现这么一个功能,比如说吃 ... -
Semaphore 源码分析
2019-01-18 17:53 1276介绍: Semaphore 用于对某一物理或逻辑资源被同一时间 ... -
ThreadPoolExecutor 源码分析
2019-01-16 11:10 2086首先说明的是,这个和 ReadWriteLock 一样,同样是 ... -
分析 Java 任务的执行
2019-01-13 20:26 2012Java 并发中会大量使用到多线程,那么Java是如何使用多线 ... -
LinkedBlockingQueue源码分析
2019-01-13 20:16 576LinkedBlockingQueue 其实实现的是一个生产者 ... -
FutureTask WaitNode 源码分析
2019-01-11 17:24 1925waiter 存放等待的线程,这是一个单链表,没有用 lock ... -
关于 Future 类 boolean cancel(boolean mayInterruptIfRunning) 的疑问
2019-01-11 09:07 0boolean cancel(boolean mayInter ... -
关于 Future 类 boolean cancel(boolean mayInterruptIfRunning) 的疑问
2019-01-10 21:05 2300boolean cancel(boolean mayInter ... -
InheritableThreadLocal 源码分析
2019-01-07 11:58 1246/* * Copyright (c) 1998, 2004, ... -
ThreadLocal 源码分析
2019-01-05 16:18 2226说明: 每个线程内部持有一个 ThreadLocalMap ... -
ReentrantReadWriteLock 简介
2019-01-04 15:54 13911.首先说明 ReentrantReadWriteLock 和 ... -
CountDownLatch 源码分析
2019-01-03 18:31 1063思路分析: CountDownLatch 的思路是:首先申 ... -
ConditionObject 类分析
2018-12-24 14:28 598Condition 实现主要通过两个方法. ① await ...
相关推荐
7、深入理解 AQS 独占锁之 Reentrantlock 源码分析 (1).pdf 8、读写锁ReentrantReadWriteLock&StampLock详解.pdf 9、并发容器 (Map、List、Set) 实战及其原理.pdf 10、阻塞队列BlockingQueue 实战及其原理分析.pdf
7、深入理解 AQS 独占锁之 Reentrantlock 源码分析 (1).pdf 8、读写锁ReentrantReadWriteLock&StampLock详解.pdf 9、并发容器 (Map、List、Set) 实战及其原理.pdf 10、阻塞队列BlockingQueue 实战及其原理分析.pdf
集合源码分析 AboutJava ==java 相关知识(理论,代码)相关知识均是看书,博客等地方获取再由自己整理,如存在侵权,请告诉我== Java基础 (缺少代码) IO 缺少图片 BIO NIO JAVA8 异常 --- 容器 基本容器 集合 Map ...
源码分析:BlockingQueue 接口 集合框架 (第 17 篇) 源码分析:CopyOnWriteArrayList 与 CopyOnWriteArraySet 二、:radio::radio::radio:JVM(Java虚拟机) Java虚拟机 (第 06 篇) 深入理解:类文件结构 Java...
7、深入理解 AQS 独占锁之 Reentrantlock 源码分析 (1).pdf 8、读写锁ReentrantReadWriteLock&StampLock详解.pdf 9、并发容器 (Map、List、Set) 实战及其原理.pdf 10、阻塞队列BlockingQueue 实战及其原理分析.pdf
7、深入理解 AQS 独占锁之 Reentrantlock 源码分析 (1).pdf 8、读写锁ReentrantReadWriteLock&StampLock详解.pdf 9、并发容器 (Map、List、Set) 实战及其原理.pdf 10、阻塞队列BlockingQueue 实战及其原理分析.pdf
7、深入理解 AQS 独占锁之 Reentrantlock 源码分析 (1).pdf 8、读写锁ReentrantReadWriteLock&StampLock详解.pdf 9、并发容器 (Map、List、Set) 实战及其原理.pdf 10、阻塞队列BlockingQueue 实战及其原理分析.pdf
这部分代码就不再追踪下去,有兴趣的读者可以自己打开源码分析,不必害怕,学习大神们的编码方式,看源码能让你学习到很多 } } private void runTask(Runnable task) { final ReentrantLock runLock = this....
CyclicBarrier源码分析(基于JDK1.7.0_40) 52 23.3.1. 3.1 构造函数 52 23.3.2. 3.2 等待函数 53 23.4. 4. CyclicBarrier的使用示例 57 23.4.1. 示例1 57 23.4.2. 示例2 59 24. Blockingqueue有几种形式?各自的编码...
java内核源码 Java指南针 基础核心 基础知识 反射 泛型 动态代理 JDK8新特性 集合容器 多线程与并发 Spring SpringMVC ...排序及其源码实现 ...GC日志详细分析 ...阻塞队列BlockingQueue详解 并发Map、Lis
高并发编程第三阶段11讲 AtomicXXXFieldUpdater源码分析及使用场景分析.mp4 高并发编程第三阶段12讲 sun.misc.Unsafe介绍以及几种Counter方案性能对比.mp4 高并发编程第三阶段13讲 一个JNI程序的编写,通过...
高并发编程第三阶段11讲 AtomicXXXFieldUpdater源码分析及使用场景分析.mp4 高并发编程第三阶段12讲 sun.misc.Unsafe介绍以及几种Counter方案性能对比.mp4 高并发编程第三阶段13讲 一个JNI程序的编写,通过...
hashmap源码 to-be-architect to be a Java architect,you should learn these.This page is updated irregularly. Java基础 深入分析 Java SPI 机制和原理 并发编程专题 Executors线程池 线程池ThreadPoolExecutor...