tomcat架构分析 (概览) tomcat架构分析 (容器类) tomcat架构分析 (valve机制) tomcat架构分析 (valve源码导读) tomcat架构分析 (Session管理) tomcat架构分析 (JNDI配置) tomcat架构分析 (JNDI体系绑定) tomcat架构 ...
分类:
其他好文 时间:
2017-03-02 12:40:27
阅读次数:
172
概述 我们在介绍AbstractQueuedSynchronizer的时候介绍过,AQS支持独占式同步状态获取/释放、共享式同步状态获取/释放两种模式,对应的典型应用分别是ReentrantLock和Semaphore,AQS还可以混合两种模式使用,读写锁ReentrantReadWriteLock ...
分类:
编程语言 时间:
2017-02-28 19:32:28
阅读次数:
272
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定,如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断如果 使用Ree ...
分类:
其他好文 时间:
2017-02-27 18:46:29
阅读次数:
179
重入锁ReentrantLock 锁获取的公平性问题: 先对锁进行获取的请求一定先被满足,那么这个锁是公平的,反之,是不公平的。ReentrantLock提供了一个构造函数(传人一个布尔值),来控制锁是否是公平的 1.实现重进入 2.公平与非公平获取锁 公平与非公平获取锁的区别 :锁的获取顺序是否符 ...
分类:
其他好文 时间:
2017-02-18 11:04:41
阅读次数:
268
AQS(AbstractQueuedSynchronizer)顾名思义,抽象的队列同步器。 它是JUC中大部分同步工具的基础。如:CountDownLatch/FutureTask/ReentrantLock/RenntrantReadWriteLock/Semaphore。 它更是一个模板模式的典 ...
分类:
其他好文 时间:
2017-02-14 01:14:07
阅读次数:
249
在JDK5后,java提供一种更加方便的安全机制,不使用synchronized,针对线程的锁定操作和释放操作使用Lock锁。更加清晰明了。举例: Lock lock=new ReentrantLock(); lock.lock 需要加锁的代码 lock.unlock 为什么说lock更为安全呢?因 ...
分类:
编程语言 时间:
2017-01-24 14:42:57
阅读次数:
238
1.普通锁 只有lock功能, Java实现:ReentrantLock lock = new ReentrantLock(); lock和unlock: 2.读写锁 读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥。 总之,读的时候上读锁,写的时候上写锁! Java里面的实现:Reentra ...
分类:
其他好文 时间:
2017-01-22 07:54:11
阅读次数:
167
ReentrantLock 两个两个比较大的特性。1.中断2.定时3.公平锁。 ReadWriteLock 读读不互斥读写互斥写写互斥。Condition 类似于 Object.wait()和Object.notify()和synchronized配套使用 CountDownLatch lanchi ...
分类:
其他好文 时间:
2017-01-10 19:32:03
阅读次数:
255
synchronized: 在资源竞争不是很激烈的情况下,偶尔会有同步的情形下,synchronized是很合适的。原因在于,编译程序通常会尽可能的进行优化synchronize,另外可读性非常好,不管用没用过5.0多线程包的程序员都能理解。 ReentrantLock: ReentrantLock ...
分类:
其他好文 时间:
2017-01-07 16:26:32
阅读次数:
259
ReentrantLock 有嗅探锁定和多路分支等功能,其实就是synchronized,wait,notify的升级。 this锁定当前对象不方便,于是就有了用new Object()来作为锁的解决方案,后面jdk干脆就提供了一个Lock类。 伪代码: Lock lock = new Reentr ...
分类:
其他好文 时间:
2017-01-04 10:33:13
阅读次数:
280