Java中常见的锁
NotRepent
这个人很懒……
展开
-
Java中常见的锁----->读写锁
独占锁 指该锁一次只能被一个线程所持有对于ReentrantLock和synchronized而言都是独占锁 共享锁 指该锁可以被多个线程所持有 对ReentrantReadWriteLock而言其读锁是共享锁,读锁是独占锁 读锁共享锁可保证并发读是非常高效的,其中读写,写读,写写是互斥的 ...原创 2022-04-20 18:04:27 · 3632 阅读 · 0 评论 -
Java中常见的锁----->自旋锁
自旋锁 是指尝试获取锁的线程不会立即被阻塞而是采用循环的方式去获取锁,这样的好处是减少上下文切换消耗,缺点是循环会消耗CPU... Unsafe public final int getAndAddInt(Object var1, long var2, int var4) { int var5; do { var5 = this.getIntVolatile(var1, var2); } while(!this.compa原创 2022-04-19 17:45:20 · 255 阅读 · 0 评论 -
JAVA中常见的锁------>可重入锁
可重入锁 指的是通过线程外层函数获得锁之后,内层递归函数仍然能够获得该锁的代码,在一个线程外层方法获取锁的时候,在进入内层方法自动获取锁。 也就是说,线程可以进入任何一个已经拥有的锁所同步着的代码块 ReentranLock/Synchronized就是一个很典型的可重入锁,作用避免死锁 上代码 package com.example.demo; class Phone{ public synchronized void SendSMS() throws Exception {原创 2022-04-19 16:52:27 · 678 阅读 · 0 评论