![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
yu_gb
这个作者很懒,什么都没留下…
展开
-
Java多线程并发(一)- 同步队列器 AQS
同步队列器 AQS(AbstractQueuedSynchronizer)是用来构建锁或自定义同步组件的基础框架,它是用一个volatile修饰的int成员变量表示同步状态,结合内置的队列完成线程获取资源的排队工作。 使用方式是继承同步队列器,主要使用更改同步状态的3个方法:getState(),setState(int newState),compareAndSetState 自定义同步组件...原创 2019-08-20 17:11:25 · 164 阅读 · 0 评论 -
Java多线程并发(二)- 重入锁
重入锁ReentrantLock,支持重进入的锁,表示一个线程对资源的重复加锁。按照锁的请求顺序和获取顺序,分为公平锁和非公平锁。 任意线程在获取到锁之后能够再次获取该锁而不会被锁阻塞。实现重进入1.线程再次获取锁:锁需要识别获取锁的线程是否为当前占据锁的线程,如果是,则再次获取成功。2.锁的释放:锁的获取同步状态变量需要自增,该变量表示锁被重复获取的次数;释放时,该变量自减,当减为0...原创 2019-08-21 10:33:52 · 149 阅读 · 0 评论 -
Java多线程并发(三)- 读写锁
读写锁:通过分离读锁和写锁,使它能提供比排它锁更好的并发性和吞吐量; jdk5之后提供的读写锁,相比于等待通知机制的实现方式,编程方式更简单;目录ReentrantReadWriteLock实现分析ReentrantReadWriteLock特性 说明 公平性选择 支持非公平和公平的锁获取方式,吞吐量非公平优于公平 重进入 支持重进入:读线程获取读锁之...原创 2019-08-21 12:08:25 · 276 阅读 · 0 评论 -
Java多线程并发(四)-LockSupport工具
LockSupport工具定义了一组公共静态方法,提供了基本的线程阻塞和唤醒功能,它是一个构件同步组件的基础工具。以park开头的方法用来阻塞当前线程,unpark方法用来唤醒一个被阻塞的线程。park(Objecgt)、parkNanos(Object,long)、parkUntil(Object,long),jdk6中补充的方法,参数Object,是用来标识当前线程在等待的对象...原创 2019-08-21 12:19:33 · 135 阅读 · 0 评论 -
Java多线程并发(五)- Condition接口
Condition和Locksynchronized和wait/nofify/notifyAll,是定义在Object上的一组监视器方法,配合可以实现等待/通知模式。使用condition之前,需要获取到与condition对象关联的锁。Lock lock = new ReentrantLock();Condition condition = lock.newCondition()...原创 2019-08-21 17:04:24 · 100 阅读 · 0 评论