锁
一只打酱油De篴
这个作者很懒,什么都没留下…
展开
-
ReentrantReadWriteLock(重入读写锁)
ReentrantReadWriteLock先写一段原始代码public class Demo3 { //共享变量 static int count = 0; public static void readMethod() { try { // 为了展示出多线程同时操作同一数据会出现问题。如果去掉之后可能会正常计算出数据 Thread.sleep(1); .原创 2020-06-30 12:18:18 · 197 阅读 · 0 评论 -
ReentrantLock(重入锁)
ReentrantLock先看一段程序:public class DemoT { // 定义一个共享变量 private static int count = 0; // 用来操作共享变量的方法 public static void inc() { try {// 为了展示出多线程同时操作同一数据会出现问题。如果去掉之后可能会正常计算出数据 Thread.sleep(1);原创 2020-06-30 11:19:33 · 151 阅读 · 0 评论 -
java-锁得升级(概念):偏向锁--轻量级锁--重量级锁
偏向锁:在大多数情况下,锁不仅仅不存在多线程的竞争,而且总是由同一个线程多次获得。在这个背景下就设计了偏向锁。偏向锁,顾名思义,就是锁偏向于某个线程。 当一个线程访问加了同步锁的代码块时,会在对象头中存储当前线程的ID,后续这个线程进入和退出这段加了同步锁的代码块时,不需要再次加锁和释放锁。而是直接比较对象头里面是否存储了指向当前线程的偏向锁。如果相等表示偏向锁是偏向于当前线程的,就不需要再尝试获得锁了,引入偏向锁是为了在无多线程竞争的情况下尽量减少不必要的轻量级锁执行路径。(偏向锁的目的是消除数据在原创 2020-06-28 17:23:47 · 224 阅读 · 0 评论