响应中断的锁与定时锁的实现原理

响应中断的锁 在JDK5之前使用Synchronized作为获取锁的关键字,但是在获取锁的过程中无法中断,及时调用Thread.interrupt也不会中断。 为了能够使线程快速的响应中断,可以使用lock.lockInterruptibly方法。 通过源码分析可中断的锁Reentran...

2016-12-15 18:22:09

阅读数 2084

评论数 0

Lock中Condition的实现

Condition 多个线程之间通信,JDK1.5以前使用wait和notify,到了JDK1.5我们有了更加高效的Condition。 通过源码分析Condition的实现ReentrantLock的Condition基本使用假如要做一个生产者消费者,当队列中没有元素时,生产者要生产,此时消...

2016-12-15 18:20:54

阅读数 656

评论数 0

共享式AQS

共享式AQS 阻塞式锁,在同一时刻只能有一个线程在执行,当一个线程执行完成后,再去释放下一个线程,而共享式是指,锁是可以被共享的,表现形式为,在同一时刻可以有多个线程运行。 通过源码分析共享式AQS的实现CountDownLatch、Semaphore都属于共享锁。基于网上有好多博客都是分析C...

2016-12-15 18:18:30

阅读数 580

评论数 0

排它式AQS(EXCLUSIVE模式)

排它式AQS(EXCLUSIVE模式) CLHLock是自旋锁,不支持阻塞,AQS支持。 和CLHLock一样,AQS有一个头节点引用和一个尾节点引用,每当一个线程过来请求锁,就会创建一个节点,节点和线程绑定,然后插入到尾节点。 通过源码分析阻塞式AQS 通过ReentrantLoc...

2016-12-15 17:58:59

阅读数 1248

评论数 0

多线程-锁

多线程-锁锁的种类 锁 分为两种, 1:阻塞锁 2:自旋锁 - 阻塞锁 当一个线程已经持有了锁,那么其他线程则必须等待。在持有锁的线程,释放锁之前,其他线程都要处于空闲状态。当持有锁的线程,释放锁后,其他线程才能获得锁。 - 自旋锁 当第一次看到这个名字的时候,直接被它吓到��。...

2016-12-15 17:54:08

阅读数 564

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭