上一页 1 2 3 4 5 6 7 ··· 47 下一页
  2021年4月16日
摘要: 一、释放锁 1.void unlock()方法 尝试释放锁,如果当前线程持有锁,则调用该方法会让该线程对该线程持有的AQS状态值减1,如果减去1后当前状态值为0,则当前线程会释放该锁,否则仅仅减去1而已,如果当前线程没有持有该锁而调用了该方法就会抛出IllegalMonitorStateExcept 阅读全文
posted @ 2021-04-16 00:07 心悦君兮君不知-睿 阅读(333) 评论(0) 推荐(0) 编辑
  2021年3月31日
摘要: 一、类图结构 25.1 ReentrantLock是一个可重入锁,只有一个线程可以获取到该锁,其他线程想要获取该锁的时候会被放到AQS队列中。从类图中可以看到实现了Lock接口,内含一个Sync类型变量,该类型是继承自AQS抽象类,同时又有两个继承了类,分别为公平锁和非公平锁。 Sync sync; 阅读全文
posted @ 2021-03-31 00:14 心悦君兮君不知-睿 阅读(210) 评论(0) 推荐(0) 编辑
  2021年3月5日
摘要: 一、使用自定义锁实现生成--消费模型 下面我们使用上节自定义的锁实现一个简单的生产--消费模型,代码如下: package com.ruigege.LockSourceAnalysis6;import java.util.Queue;import java.util.concurrent.locks 阅读全文
posted @ 2021-03-05 00:22 心悦君兮君不知-睿 阅读(127) 评论(0) 推荐(0) 编辑
  2021年2月26日
摘要: 一、AQS-条件变量的支持(二) 在如下代码中,当另外一个线程调用条件变量的signal方法的时候(必须先调用锁的lock方法获取锁),在内部会把条件队列里面队头的一个线程节点从条件队列里面移除并且放入AQS的阻塞队列里面,然后激活这个线程。 public final void signal() { 阅读全文
posted @ 2021-02-26 00:27 心悦君兮君不知-睿 阅读(118) 评论(0) 推荐(0) 编辑
  2021年2月24日
摘要: 一、编写评论页面 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>D38_1_Review</title> <style> *{ margin:0; padding:0; list-style:none; } # 阅读全文
posted @ 2021-02-24 00:30 心悦君兮君不知-睿 阅读(170) 评论(0) 推荐(0) 编辑
  2021年2月22日
摘要: 一、入队操作 当一个线程获取锁失败之后会被转换为Node节点,然后会使用enq方法,将该节点插入到AQS的阻塞队列,下面看一下这个方法如何实现 private Node enq(final Node node) { for(;;) { Node t = tail; if( t == null) { 阅读全文
posted @ 2021-02-22 23:07 心悦君兮君不知-睿 阅读(162) 评论(0) 推荐(0) 编辑
  2021年1月31日
摘要: 一、AQS--锁的底层支持 1.AQS是什么 AQS是AbstractQueuedSychronizer的简称,即抽象同步队列的简称,这是实现同步器的重要组件,是一个抽象类,虽然在实际工作中很烧用到它,但是了解它的内部原理是很有必要的,并法包中锁的底层就是使用该抽象类实现的,下面类图 2.分析AQS 阅读全文
posted @ 2021-01-31 18:56 心悦君兮君不知-睿 阅读(215) 评论(0) 推荐(0) 编辑
  2021年1月23日
摘要: 一、例子 下面来一个例子加深对park和unpark的理解 package com.ruigege.LockSourceAnalysis6;import java.util.concurrent.locks.LockSupport;public class TestParkAndUnpark { p 阅读全文
posted @ 2021-01-23 15:41 心悦君兮君不知-睿 阅读(177) 评论(0) 推荐(0) 编辑
  2021年1月17日
摘要: 一、LockSupport工具类 1.该类的主要作用 挂起和唤醒线程,该工具类是创建锁和其他同步类的基础。LockSupport类与每个使用它的线程都会关联一个许可证,默认情况下调用LockSupport类的方法的线程是不持有许可证的。LockSupport使用Unsafe类进行实现的。 2.voi 阅读全文
posted @ 2021-01-17 00:27 心悦君兮君不知-睿 阅读(75) 评论(0) 推荐(0) 编辑
  2021年1月9日
摘要: 一、CopyOnWriteArrayList 概览:该List是一个JUC包中的唯一并发List,它是线程安全的,底层是一个数组,我们所有的操作都是使用了写时复制的策略,下面这张图片就是该类的一个类图 1.类图基本解释 有一个独占锁ReentrantLock用于锁定线程,同一时间只能由一个线程进行修 阅读全文
posted @ 2021-01-09 23:44 心悦君兮君不知-睿 阅读(197) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 47 下一页