并发篇
文章平均质量分 88
深入理解java并发
可口口可
23届
展开
-
Map及其实现类、锁
Map及其实现类、锁原创 2022-11-22 14:22:34 · 742 阅读 · 0 评论 -
并发篇:Synchronized ReentrantLock SynchronizedMap ConcurrentHashMap
synchronized 和 ReentrantLock 有什么不同?SynchronizedMap和ConcurrentHashMap有什么区别?原创 2022-10-09 09:55:42 · 298 阅读 · 0 评论 -
并发篇: wait sleep lock synchronized volatile
并发篇: wait sleep lock synchronized volatile wait vs sleep一个共同点,三个不同点共同点wait() ,wait(long) 和 sleep(long) 的效果都是让当前线程暂时放弃 CPU 的使用权,进入阻塞状态不同点方法归属不同sleep(long) 是 Thread 的静态方法而 wait(),wait(long) 都是 Object 的成员方法,每个对象都有醒来时机不同执行 sleep(long) 和原创 2022-05-29 10:59:11 · 186 阅读 · 0 评论 -
并发篇:线程状态和线程池
并发篇:线程状态和线程池线程状态Java 线程六种状态步骤(结合上图):正常:New新建——>start——>可运行状态——>操作系统交给cpu——>。。。。。——>完成运行,终结状态阻塞:cpu运行——>获取锁失败——>阻塞——>cpu运行阻塞代码——>当前面释放锁后,唤醒阻塞线程——>获取锁成功——>运行等待:cpu运行——>获取锁——>不满足某些条件——>等待状态,交给其它线程先运行原创 2022-05-29 10:35:37 · 182 阅读 · 0 评论 -
并发篇:乐观锁和悲观锁
乐观锁和悲观锁概述两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少的情况下,即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果经常产生冲突,上层应用会不断的进行retry,这样反倒是降低了性能,所以这种情况下用悲观锁就比较合适。绝大部分开发运用的是悲观锁悲观锁悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统原创 2022-05-29 08:51:12 · 536 阅读 · 0 评论