线程
Leven.
这个作者很懒,什么都没留下…
展开
-
【java】抽象同步队列AQS
1、什么是抽象同步队列? 抽象同步队列AQS(AbstractQueueSynchronized)是实现同步器的基础组件,并发包(J.U.C)包中锁的底层就是使用AQS实现的。2、AQS核心思想 AQS核心思想是,如果被请求的共享资源空闲,则将当前线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,...原创 2020-04-09 11:30:24 · 179 阅读 · 0 评论 -
实现线程安全的方法
1、互斥同步互斥同步是最常见的一种并发正确性保障方法,一般使用Synchronized和JUC包下的可重入锁(即ReentrantLock和ReentrantReadWriterLock中的WriterLock)互斥同步是一种悲观的并发策略2、非阻塞同步非阻塞同步是基于冲突检测的乐观并发策略。采用CAS算法实现的同步操作,常见的有ReentrantReadWriterLock中的Re...原创 2020-04-09 00:06:15 · 377 阅读 · 0 评论 -
使用InheritableThreadLocal的细节
ThreadLocal不支持继承性,即在子线程中无法使用父线程的ThreadLocal,因此提供了InheritableThreadLocal来实现在子线程中也能使用父线程的ThreadLocal。在使用InheritableThreadLocal时,应该注意,父线程中对InheritableThreadLocal变量的赋值要先于对子线程的定义,例如 Runnable ru...原创 2019-09-26 11:32:40 · 183 阅读 · 0 评论