摘要: 一、自旋锁 vs 互斥锁 1. 自旋锁:当一个线程获取锁时,如果锁已经被其他线程获取,当前线程就while进行重试,不进入休眠阻塞,减少线程上线文切换,但是循环等待消耗CPU 2. 互斥锁:当一个线程获取锁后,其余线程进入休眠阻塞,进行线程上下文切换 二、悲观锁 vs 乐观锁 1. 悲观锁:先锁定共 阅读全文
posted @ 2019-09-28 18:16 牧云文仔 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 一、引入背景(Why) 1. 在多线程环境下,HashMap的put会导致扩容,扩容引起死循环,导致CPU使用率100% 2. 可以使用HashTable和Collections.synchronizedMap(hashMap)可以解决多线程的问题 3. HashTable和Collections. 阅读全文
posted @ 2019-09-28 17:44 牧云文仔 阅读(738) 评论(0) 推荐(0) 编辑