首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
午夜12点
掘友等级
|
迷
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
44
文章 44
沸点 0
赞
44
返回
|
搜索文章
最新
热门
Java并发——ScheduledThreadPoolExecutor分析
从图中我们可以看到ScheduledThreadPoolExecutor继承ThreadPoolExecutor实现了ScheduledExecutorService接口。它相当于提供了"延迟"和"周期执行"功能的ThreadPoolExecutor,还有两个重要内部类Dela…
Java并发——ThreadLocal分析
This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (vi…
Java并发——信号量Semaphore
Semaphore中管理着一组虚拟的许可(permit),许可的初始数量可通过构造函数来指定。在执行操作时需要首先获得许可(只要还有剩余的许可),并在使用以后释放许可。如果没有许可,那么acquire方法将阻塞直到有许可(或者直到被中断或者操作超时),当执行完业务通过relea…
Java并发—— CountDownLatch与CyclicBarrier
CountDownLatch闭锁相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭的,并且没有任何线程能通过,当到达结束状态时,这扇门会打开并允许所有的线程通过。当闭锁到达结束状态后,将不会再改变状态,门永远保持打开状态 CountDownLatch通过内部类Sync实现方…
Java并发——阻塞队列集(下)
接着上集继续,SynchronousQueue是一个不存储元素的阻塞队列。每一个put操作必须等待一个take操作,否则不能继续添加元素,所以其peek()方法始终返回null,没有数据缓存空间。SynchronousQueue支持公平与非公平访问,默认采用非公平性策略访问队列…
Java并发——阻塞队列集(上)
ArrayBlockingQueue是一个用数组实现的有界阻塞队列,队列按照先进先出(FIFO)原则对元素进行排序。默认采用不公平访问,因为公平性通常会降低吞吐量。 ArrayBlockingQueue提供了很多方法入队:add()、offer()、put()等。我们以阻塞式方…
Java并发——Condition
调用AQS的模板方法release()方法释放同步状态并且唤醒在同步队列中头结点的后继节点引用的线程,如果释放成功则正常返回,否则抛出异常。随后调用isOnSyncQueue()判断节点是否在同步队列
Java并发——AbstractQueuedSynchronizer(AQS)同步器
在此之前介绍ReentrantLock、ReentrantReadWriteLock中都有sync属性,而sync正是继承了AQS(AbstractQueuedSynchronizer)同步器。AQS采用模板设计模式,调用其模板方法(独占式获取与释放同步状态、共享式获取与释放同…
Java并发——读写锁ReentrantReadWriteLock
ReentrantReadWriteLock即可重入读写锁,同样也依赖于AQS来实现。在介绍ReentrantLock我们知道其依托AQS的同步状态来判断锁是否占有,而ReentrantReadWriteLock既有读锁又有写锁,是如何依靠一个状态来维持的? Reentrant…
Java并发——ReentrantLock
ReentrantLock即可重入锁(当前线程获取该锁再次获取不会被阻塞),是一种递归无阻塞的同步机制。ReentrantLock基于AQS来实现,相对于内置锁synchronized关键字功能更强大,多了等待可中断、公平性、绑定多个条件等机制,还可以tryLock()避免死锁…
下一页
个人成就
文章被点赞
682
文章被阅读
67,298
掘力值
2,381
关注了
23
关注者
433
收藏集
2
关注标签
5
加入于
2017-04-25