AQS,在java.util.concurrent.locks包中,AbstractQueuedSynchronizer这个类是并发包中的核心,了解其他类之前,需要先弄清楚AQS。在JUC的很多类中都会存在一个内部类Sync,Sync都是继承自AbstractQueuedSynchronizer,相... ...
分类:
其他好文 时间:
2017-08-30 14:15:34
阅读次数:
176
Java多线程系列--“JUC线程池”04之 线程池原理(三) 本章介绍线程池的生命周期。在"Java多线程系列--“基础篇”01之 基本概念"中,我们介绍过,线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。线程池也有5种状态;然而,线程池不同于线程,线程池的5种状态是:Runni ...
分类:
编程语言 时间:
2017-08-20 00:50:40
阅读次数:
428
Java多线程系列--“JUC线程池”06之 Callable和Future Callable 和 Future 简介 Callable 和 Future 是比较有趣的一对组合。当我们需要获取线程的执行结果时,就需要用到它们。Callable用于产生结果,Future用于获取结果。 1. Calla ...
分类:
编程语言 时间:
2017-08-20 00:40:38
阅读次数:
238
学习笔记 07 JUC集合 在讲JUC集合之前我们先总结一下Java的集合框架,主要包含Collection集合和Map类。Collection集合又能够划分为LIst和Set。 1. List的实现类主要有: LinkedList, ArrayList, Vector, Stack。 (01) L ...
分类:
其他好文 时间:
2017-08-19 20:00:25
阅读次数:
251
Java多线程系列--“JUC线程池”01之 线程池架构 概要 前面分别介绍了"Java多线程基础"、"JUC原子类"和"JUC锁"。本章介绍JUC的最后一部分的内容——线程池。内容包括:线程池架构图线程池示例 转载请注明出处:http://www.cnblogs.com/skywang12345/ ...
分类:
编程语言 时间:
2017-08-18 17:16:50
阅读次数:
272
Java多线程系列--“JUC线程池”02之 线程池原理(一) ThreadPoolExecutor简介 ThreadPoolExecutor是线程池类。对于线程池,可以通俗的将它理解为"存放一定数量线程的一个线程集合。线程池允许若个线程同时允许,允许同时运行的线程数量就是线程池的容量;当添加的到线 ...
分类:
编程语言 时间:
2017-08-18 17:10:57
阅读次数:
271
Java多线程系列--“JUC锁”11之 Semaphore信号量的原理和示例 Semaphore简介 Semaphore是一个计数信号量,它的本质是一个"共享锁"。 信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则 ...
分类:
编程语言 时间:
2017-08-18 16:17:10
阅读次数:
231
Java多线程系列--“JUC锁”06之 Condition条件 概要 前面对JUC包中的锁的原理进行了介绍,本章会JUC中对与锁经常配合使用的Condition进行介绍,内容包括:Condition介绍Condition函数列表Condition示例转载请注明出处:http://www.cnblo ...
分类:
编程语言 时间:
2017-08-18 15:26:44
阅读次数:
205
【Java并发编程实战】 “J.U.C”:ReentrantLock之一简介 ReentrantLock介绍 ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。 顾名思义,ReentrantLock锁在同一个时间点只能被一个线程锁持有;而可重入的意思是,ReentrantLock锁 ...
分类:
编程语言 时间:
2017-08-18 13:28:36
阅读次数:
238
Java多线程系列--“JUC锁”04之 公平锁(二) 释放公平锁(基于JDK1.7.0_40) 1. unlock() unlock()在ReentrantLock.java中实现的,源码如下: 说明:unlock()是解锁函数,它是通过AQS的release()函数来实现的。在这里,“1”的含义 ...
分类:
编程语言 时间:
2017-08-18 13:26:36
阅读次数:
240