并发编程学习整理

1.hashmap采用位运算定位数组的下标,因为位运算效率高于模运算
2.hash的数据容量不是2次幂得话,可能造成hash不均匀,一个位置可能永远放不到

1.jdk7版本之前的concurrenthasmap采用seagment分段锁的思想,进行两次hash找到数据存放的位置,但是jdk8之后放弃了分段锁,基本结构与hashmap基本类似,但是采用了锁保证了安全并发,在jdk8中,两种hashmap都会有链表.链表转红黑树阈值8,但是实际长度是9

 

线程池从阻塞队列取任务,没有任务了则推出循环
为什么上来解锁

 

1.线程池种类:

1.newFixedTHreadpool:固定数量线程池

2.aqs介绍:

3.如何保证锁可重入:

获取锁的时候会把线城保存下来

判断线城是否是当前线城

 

4.公平锁实现原理:见测阻塞队列中是否有前驱队列,即有没有在等待的队列,有说明需要等待排队,实现公平原理

5.signal原理:被唤醒后从signal的等待队列放到竞争锁的队列中

6.先获取读锁,又想获取读锁不可以,但是先获取写锁,又想获取读锁,是可以的

7.stampedlock:带有时间戳的锁,可以解决aba问题

8.semaphore:限制能同时访问贡献资源的线程上限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值