摘要:
阻塞队列与普通的队列(LinkedList/ArrayList)相比,支持在向队列中添加元素时,队列的长度已满阻塞当前添加线程,直到队列未满或者等待超时;从队列中获取元素时,队列中元素为空 ,会将获取元素的线程阻塞,直到队列中存在元素 或者等待超时。 在JUC包中常用的阻塞队列包含ArrayBloc 阅读全文
摘要:
ConcurrentLinkedQueue是非阻塞无界的,基于FIFO原则,线程安全的队列,新节点的插入都是在队列的尾部插入的(tail节点),该队列适合于多个线程共享同一个集合时使用。 结构: 构造函数 offer插入 add插入 poll出队列 peek出队列 size操作 remove操作 c 阅读全文
摘要:
使用线程池的好处 引用自 http://ifeve.com/java-threadpool/ 的说明: 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建, 阅读全文
摘要:
HashMap,开发中最常用的数据结构之一,由数组加链表组成,以key-->value键值对形式存在,HashMap的结构如下: HashMap类中有几个关键变量 HashMap中有两个重要的内部类,Node、TreeNode Node 代表HashMap中的普通节点(未转化为红黑树之前,在jdk1 阅读全文
摘要:
ReentrantReadWriteLock, 可重入读写锁, 包含读锁与写锁,具体结构如下图: ReentrantReadWriteLock包含了很多内部类,其中最核心的为Sync、ReadLock、WriteLock Sync内部类 sync内部类是AQS的实现类,实现了共享锁、独占锁的获取与释 阅读全文
摘要:
AQS, 即AbstractQueuedSynchronizer,一个基于FIFO的队列同步器,是实现lock的基础,AQS是一个抽象类,继承了AbstractOwnableSynchronizer抽象类,其总体结构如下: 包含内部类Node ,ConditionObject。 AQS的结构 AQS 阅读全文
摘要:
工具源码 : https://github.com/svmachine/WeChat.git jar包下载 : https://github.com/svmachine/WeChat/blob/master/WeChatUtil.jar 部署使用说明 1.初始化 需要自定义listener,在con 阅读全文
摘要:
工具源码 : https://github.com/svmachine/DingDing.git jar包下载 : https://github.com/svmachine/DingDing/blob/master/DingDingUtil.jar 部署使用说明 1.初始化 需要自定义listene 阅读全文