![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 85
feizhuliuss
这个作者很懒,什么都没留下…
展开
-
线程安全 -- AQS同步锁(ReentrantLock实现)
前言 AQS是JUC包中可扩展的一个同步器工具,可以通过继承AQS去实现公平锁、非公平锁,等待队列以及同步队列。由于等待队列是在锁下进行入队,所以无需考虑线程安全 单个线程或者说少量线程交替并发执行下,lock锁很可能与同步队列并无关系,除非是IO操作,正常程序执行的时间都非常短。只有并发量非常大或者共享资源执行时间比较长,才会有线程进入同步队列,进行OC操作系统层面的阻塞和唤醒操作 类图 源码分析 首先我们需要理解,锁的机制,AQS是基于自旋+CAS操作来保证数据的一致性,里面有一个Node内部类用来存原创 2021-08-15 20:35:51 · 259 阅读 · 0 评论 -
多线程基础简单复习总结(一)
一、进程和线程的区别 线程:一段程序里,每个不同的执行路径就是一个线程 二、关于同步和异步 对于多线程并发场景,分为同步和异步,同步的优点是解决了安全问题,但是运行效率会比较低(通过sychronized关键字或者reentrantLock) 异步执行反之,执行效率高,但是可能会引发线程安全问题 三、线程安全的解决方法 1、线程封闭 a.局部变量 b.ThreadLocal 2、同步容器 a.ArrayList -> Vector、Stack b.HashTable c.?? 3、基于CAS的原子原创 2020-07-05 00:21:01 · 125 阅读 · 0 评论