25.我们知道不安全,请编写一个不安全的案例并给出解决方案?
/** 集合类不安全的问题*ArrayList* */public class ContainerNotSafeDemo {public static void main(String[] args) {//new ArrayList
/** 集合类不安全的问题*HashSet也是一个不安全的集合,和ArrayList解决线程不安全的问题一样*hashset的底层是hashmap 。*那为什么hashset.set(6);可以直接添加一个呢?*因为它的add方法底层也是调用的hashmap的put方法,put的value是一个常量object,这个对象是null 。* */
也是不安全的,juc包里面有个可以解决并发问题 。
集合工具类里面也是有api对应的方法使得线程安全 。
26.公平锁/非公平锁/可重入锁/递归锁/自旋锁/ 谈谈你的理解?请手写一个自旋锁 。
? 1.公平锁:是指多个县城按照申请的顺序来获取锁,类似排队打饭,先来后到 。
? 2.非公平锁: 是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,在高并发的情况下,有可能造成优先级反转 或饥饿现象 。
? 公平锁与非公平锁的区别:
? 公平锁/非公平锁,并发包中的创建可以指定构造函数的类型来得到公平锁或非公平锁,默认是非公平锁 。
? 关于两者的区别:
? **公平锁:a fair lock in the order in which theyit **
? 公平锁,就是很公平,在并发环境中,每个线程在获取锁时,会先查看此锁维护的等待队列,如果为空,或者当前线程时等待队列的第一个,就占有锁,否则就会加入到等待队列中,以后会按照Fifo的规则从队列中取到自己
? 非公平锁:非公平锁比较粗鲁,上来就直接尝试占有锁,如果尝试失败,就再采用类似公平锁的那种方式 。
? **java 而言,通过构造函数指定锁是否是公平锁,默认是非公平锁 。非公平锁的优点在于吞吐量比公平锁大 。**
? 对于而言,也是一种非公平锁 。
3.可重入锁(又名递归锁)
? 是指同一线程外层函数获得锁之后,内层递归函数仍然获取该锁的代码 。在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁 。
- 全球销量最好的100款手机。看看你用过的手机排在第几位? 世界之最的五部手机是什么
- 天津青少年篮球培训
- 海淀少年宫
- 宅多少年后就不算了,自的房子算不算宅
- 从“不良少年”到美国总统,奥巴马是如何走向权力巅峰 历史美国领导人之最
- 初中生四刷世界记录,“光速少年”再创佳绩 吉尼斯记录画报
- 十大国产经典网游,引领一代人的回忆,来看看你玩过几款! 中国十大网络游戏
- “同年不同脸”的9对明星,有人鲜嫩似少年,有人苍老如大爷 秦海璐吉尼斯记录
- 闸北区青少年活动中心
- 成都市青少年宫