【Java并发编程实战】 “J.U.C”:锁,lock 在java中有两种方法实现锁机制,一种是在前一篇博客中(【java7并发编程实战】 线程同步机制:synchronized)介绍的synchronized,而另一种是比synchronized更加强大和领过的Lock。Lock确保当一个线程位于 ...
分类:
编程语言 时间:
2017-08-17 23:36:10
阅读次数:
276
● 简述synchronized?Object;Monitor机制; ● 简述happen-before规则 ; ● JUC和Object ; Monitor机制区别是什么 ; 简述AQS原理 ; ● 简述DCL失效原因,解决方法 ; ● 简述nio原理 ; ● jvm运行时数据区域有哪几部分组成, ...
分类:
编程语言 时间:
2017-08-05 22:52:43
阅读次数:
202
LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语。LockSupport实际上是调用了Unsafe类里的函数,归结到Unsafe里,只有两个函数: 1 public native void unpark(Thread jthread); 2 publ ...
分类:
编程语言 时间:
2017-08-03 18:49:25
阅读次数:
223
释放公平锁(基于JDK1.7.0_40) 1. unlock() unlock()在ReentrantLock.java中实现的,源码如下: 说明:unlock()是解锁函数,它是通过AQS的release()函数来实现的。在这里,“1”的含义和“获取锁的函数acquire(1)的含义”一样,它是设 ...
分类:
编程语言 时间:
2017-08-03 01:07:51
阅读次数:
235
获取非公平锁(基于JDK1.7.0_40) 非公平锁和公平锁在获取锁的方法上,流程是一样的;它们的区别主要表现在“尝试获取锁的机制不同”。简单点说,“公平锁”在每次尝试获取锁时,都是采用公平策略(根据等待队列依次排序等待);而“非公平锁”在每次尝试获取锁时,都是采用的非公平策略(无视等待队列,直接尝 ...
分类:
编程语言 时间:
2017-08-03 00:56:43
阅读次数:
212
基本概念 本章,我们会讲解“线程获取公平锁”的原理;在讲解之前,需要了解几个基本概念。后面的内容,都是基于这些概念的;这些概念可能比较枯燥,但从这些概念中,能窥见“java锁”的一些架构,这对我们了解锁是有帮助的。1. AQS -- 指AbstractQueuedSynchronizer类。 AQS ...
分类:
编程语言 时间:
2017-08-02 22:10:04
阅读次数:
148
Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock ...
分类:
编程语言 时间:
2017-08-02 00:23:29
阅读次数:
284
目录 1 基本实现原理 1.1 如何使用 1.2 设计思想 2 自定义同步器 2.1 同步器代码实现 2.2 同步器代码测试 3 源码分析 3.1 Node结点 3.2 独占式 3.3 共享式 4 总结 Java并发包(JUC)中提供了很多并发工具,这其中,很多我们耳熟能详的并发工具,譬如Reent ...
分类:
编程语言 时间:
2017-07-24 14:48:33
阅读次数:
271
Java多线程系列--“JUC线程池”06之 Callable和Future ...
分类:
编程语言 时间:
2017-07-09 11:01:29
阅读次数:
196
Java多线程系列--“JUC线程池”02之 线程池原理(一) ...
分类:
编程语言 时间:
2017-07-09 10:54:16
阅读次数:
171