首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
断风雨
掘友等级
获得徽章 8
动态
文章
专栏
沸点
收藏集
关注
作品
赞
99
文章 88
沸点 11
赞
99
返回
|
搜索文章
最新
热门
LeetCode-数组-删除有序数组重复元素
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
LeetCode-数组-三数之和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 习题原文
ThreadPoolExecutor-线程池的实现分析
降低资源消耗。 提高响应速度。 ThreadPoolExecutor 采用一个原子的整形变量按位存储线程池的状态和线程池的当前工作线程数。 从 Worker 的构建可以看出,当线程启动时,实际上执行的是 Worker 的 run 方法。
Semaphore-信号量的实现分析
从上述代码中可以看到,公平模式下获取许可和非公平模式下基本类似,只是为了保证 FIFO ,添加了 hasQueuedPredecessors 判断限制。 Semaphore 可以用来实现限流的作用。
CyclicBarrier - 同步屏障实现分析
CyclicBarrier 和 CountDownLatch 功能类似,不同之处在于 CyclicBarrier 支持重复利用,而 CountDownLatch 计数只能使用一次。
CountDownLatch的实现分析
从结果中可以看出 main 主线程会在 3 个子线程处理完毕之后才继续执行。 CountDownLatch 与其他同步组件一样,内部类 Sync 继承了 AQS,构造的时候会指定子任务个数 count , 也即是同步状态初始值。 从实现可以看出 await() 方法执行时,当子…
AQS之Condition实现分析
从 newCondition 方法看出 Condition 对象实际上是 AQS 的内部类 ConditionObject ()。 从内部定义的变量 firstWaiter, lastWaiter 看出, ConditionObject 对象内部维护了一个同样以 Node 为节…
ReentrantReadWriteLock 读写锁
在 ReentrantReadWriteLock 中通过对同步状态值进行“按位切割”,因为 int 占 32 位 bit,故一分为二,采用高 16 位表示读状态,低 16 位表示写状态。 也就是写状态的二进制表示,值为 5. 那么 该位与操作数转成十进制也即是 65535 (2…
ReentrantLock-重入锁
从图中我们可以看出 ReentrantLock 实现 Lock 接口,同时内部类 Sync 是 AQS 的子类;而 Sync 又有两个子类 NonfairSync 和 FairSync 分别对应非公平和公平锁两种策略。 hasQueuedPredecessors 方法主要实现的…
AQS-共享式
从 setHeadAndPropagate 的实现我们可以看出在移动 head 节点之后,若满足继续往下传播唤醒的条件时将会调用 doReleaseShared 方法。 因共享模式下,会存在多个线程同时释放同步状态的场景, doReleaseShared 通过不断的轮询和 CA…
下一页
个人成就
文章被点赞
233
文章被阅读
42,617
掘力值
1,346
关注了
32
关注者
90
收藏集
1
关注标签
18
加入于
2018-10-09