
Java并发学习
文章平均质量分 60
11408考研休息室
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java并发编程的艺术-七-十章
原创 2021-10-23 17:21:42 · 90 阅读 · 0 评论 -
Java并发编程-ThreadPoolExecutor
一、核心参数corePool 核心线程池大小maximumPool 最大线程池大小BlockingQueue 工作队列RejectedExecutionHandler 当Executor已经关闭或饱和,需要拒绝的策略。二、分类FixedThreadPoolSingleThreadExecutorCachedThreadPool三、通用Executor执行模型当前线程数量小于corePoolSize,创建一个新的线程来执行任务如果线程大于等于corePoolSize,工作队列不原创 2021-10-23 00:38:10 · 134 阅读 · 0 评论 -
Java并发容器与框架的实现
一、ConcurrentHashMap1.1 背景多线程中,HashMap导致程序死循环(HashMap采用拉链法解决hash冲突,当链表大于了装载因子对应的最大容量,需要重新进行散列。问题发生在这里,多线程可能同时出发rehash,形成了链表的回路);HashTable会阻塞其他线程,效率低下。ConccurentHashMap使用分段锁,把数据分段,每一段配一把锁。1.2 结构由Segment数组和HashEntry数组组成。Segment是一个ReentrantLock,当作锁。HashEnt原创 2021-10-22 01:14:54 · 153 阅读 · 0 评论 -
Java并发-锁的获取和撤销机制
Java对象头个人总结Biasable 可偏向:bitfields为0Biased 已经加偏向锁:bitfields为线程ID轻量级锁快速上锁机制fast locking• 在当前线程栈中创建存储锁记录的空间• 将对象头mark work复制到lock record中(displaced mark word)• 线程尝试用CAS将mark word替换为指向锁记录lock recordœ的指针• 如果成功,当前线程获得锁,如果失败,意味着其他线程在竞争锁,尝试自旋获取锁,次数过多升级为重量原创 2021-10-16 02:45:48 · 434 阅读 · 0 评论