范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

谈谈synchronized与ReentrantLock的区别

  【死记硬背】 概念
  synchronized是JVM层面的锁,是Java关键字,通过monitor对象来完成(monitorenter与monitorexit),对象只有在同步块或同步方法中才能调用wait/notify方法。
  ReentrantLock是从jdk1.5以来(java.util.concurrent.locks.Lock)提供的API层面的锁。共同点
  1 都是用来协调多线程对共享对象、变量的访问;
  2 都是可重入锁,同一线程可以多次获得同一个锁;
  3 都保证了可见性和互斥性;不同点
  1 ReentrantLock显示的获得、释放锁,synchronized隐式获得释放锁;
  2 ReentrantLock可响应中断、可轮回,synchronized是不可以响应中断的,为处理锁的不可用性提供了更高的灵活性;
  3 ReentrantLock是API级别的,synchronized是JVM级别的;
  4 ReentrantLock可以实现公平锁,而synchronized不行;
  5 ReentrantLock通过Condition可以绑定多个条件;
  6 底层实现不一样,synchronized是同步阻塞,使用的是悲观并发策略,Lock是同步非阻塞,采用的是乐观并发策略;
  7 Lock 是一个接口,而 synchronized 是 Java 中的关键字,synchronized 是内置的语言
  实现。
  8 synchronized 在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生;而Lock在发生异常时,如果没有主动通过unLock()去释放锁,则很可能造成死锁现象,因此使用 Lock 时需要在 finally 块中释放锁。
  9 Lock可以让等待锁的线程响应中断,而 synchronized却不行,使用synchronized时,等待的线程会一直等待下去,不能够响应中断;
  10 通过Lock可以知道有没有成功获取锁,而synchronized却无法办到;
  11 Lock 可以提高多个线程进行读操作的效率,既就是实现读写锁等;
  【答案解析】
  synchronized的锁使用案例:public class SynchronizedCommonMethodTest {     public synchronized void method1(){         System.out.println("Method 1 start");         try {             System.out.println("Method 1 execute");             Thread.sleep(3000);         }catch (InterruptedException e) {             e.printStackTrace();         }         System.out.println("Method 1 end");     }     public synchronized void method2(){         System.out.println("Method 2 start");         try {             System.out.println("Method 2 execute");             Thread.sleep(1000);         }catch (InterruptedException e) {             e.printStackTrace();         }         System.out.println("Method 2 end");     }     public static void main(String[] args) {         //当前实例对象test         final SynchronizedCommonMethodTest test = new SynchronizedCommonMethodTest();         new Thread(new Runnable() {             @Override             public void run() {                 test.method1();             }         }).start();         new Thread(new Runnable() {             @Override             public void run() {                 test.method2();             }         }).start();     } }
  ReentrantLock的锁使用案例:import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class ReentrantLockTest implements Runnable{     private int count;     Lock lock = new ReentrantLock();     @Override     public void run() {         for(int j=0;j<1000;j++) {             lock.lock();             try {                 count++;             } finally {                 lock.unlock();             }         }     }     public static void main(String[] args) throws Exception{         ReentrantLockTest t = new ReentrantLockTest();         Thread t1 = new Thread(t);         Thread t2 = new Thread(t);         t1.start();         t2.start();         t1.join();         t2.join();         System.out.println(t.count);     } }
  【温馨提示】
  点赞+收藏文章,关注我并私信回复【面试题解析】,即可100%免费领取楼主的所有面试题资料!

回忆一下近10年来用过的所有智能手机我是00年的,用过的手机不算特别多,但是都给我留下了很深刻的印象,话不多说,开始回忆。第二部手机不知名国产山寨品牌尼采手机去世两个月后,家里人换新手机换下来的,记忆里这部手机电池坏战投部与龙珠之外美团投资为何新成立第三驾马车?科创板日报4月29日讯(特约研究员田箫),4月27日,无锡龙珠美湖股权投资合伙企业(有限合伙)成立,执行事务合伙人为芜湖美辰企业管理有限公司,注册资本10亿元人民币,经营范围包含以6月亮相?小米12Ultra核心配置曝光暂定安卓机皇?近几年来,小米手机逐渐找对了节奏,在高端中端以及入门级市场中都获得了不错的成绩。其中小米旗下的数字系列,自从小米10系列以来,便得到了众多用户的青睐,而且口碑直线上升,到了如今的小一款好工具老毛桃不知你是否遇到过电脑忘记开机密码?电脑蓝屏怎么恢复?怎么格式化电脑磁盘和分区?怎么重置磁盘格式呢?怎么进入电脑安全模式呢?在线怎么重装电脑系统呢?等等这些问题,今天教你一款好工具老为什么全军出击的画质甩刺激战场八条街。而却没有刺激战场火呢?这个首先根据游戏定位的问题有关游戏定位刺激战场是完美还原端游,端游有什么跟新,刺激战场就紧跟着跟新,步伐一致。而全军出击,则是走着创新的路子,它开创的游戏类型,相当新颖,可玩性比较华为2022年是算力元年未来计算和网络将迎来高速发展在2022华为分析师大会上,华为方面最新表态称,2022年是算力元年,未来计算和网络将迎来高速发展。据了解,目前各行各业对计算能力的需求持续增加,算力正成为推动数字经济高速发展的重荣耀Magic4Pro很强,但是还不够完美这是荣耀第二个采用骁龙8Gen1平台的旗舰系列荣耀Magic4系列。系列下有三款机型,Magic4Magic4Pro以及Magic4至臻版。Magic4Pro依旧延续着整个Magi5nm旗舰芯加持!vivoS15e明天首销1999元起今天,vivo商城显示,vivoS15e将于4月30日0点正式开卖,起售价为1999元(8GB128GB),有雾凇金冰晶蓝和萤石黑三种配色可供选择。vivoS15e搭载三星Exyn余总,说好的常用常新,永不过时呢?19年底想着支持华为,又看好鸿蒙系统的加持,可手头比较紧,退而求其次买了荣耀智慧屏pro,出厂就是鸿蒙1。0,比较高的性价比,出色的音质,开机神速且没有广告,用着各种舒服,偶尔还能安徽放牛娃,修成正果当高富帅,创立蔚来赚富人的零花钱在2021胡润全球富豪榜上,蔚来汽车创始人李斌以650亿财富位居第240名,成为名副其实的高富帅。他跟王传福一样,都是出身穷苦的安徽人,却不坠青云之志,通过读书改变命运,成为新时代直降400元!RedmiK50电竞版开启促销模式5月1日消息,开售不到3个月的RedmiK50电竞版开启降价促销叠加优惠券后全系直降400元,还支持最高24期免息活动,到手价低至2899元。RedmiK50电竞版搭载骁龙8Gen
华为二季度销售收入下降38有质量地活下来华为今日发布2021年上半年经营业绩,称整体经营结果符合预期。华为第二季度销售收入下降38。2021年上半年,公司实现销售收入3204亿元人民币,净利润率9。8。其中,运营商业务收疑阿里女员工醉酒被侵害背后,律师参与劝酒可能构成共同犯罪近日,某认证信息为阿里巴巴员工的人士在某平台爆料称,某女同事在公务出差过程中被灌醉,后遭到商户猥亵,当晚该女同事被其上司侵犯,事后女同事在公司反馈情况被拖延处理。8月7日,阿里巴巴人工智能在药物研发中的应用(上)AI与制药场景如何相互适配?近年来,人工智能(AI)已经被广泛应用于多个行业,彻底改变了社会生活的许多领域。在制药这一传统行业,AI也已经有了诸多应用。AI逐渐应用于药物发现的靶点发现,虚拟筛选,化合物设计与数字化引擎数字化时代已经到来,你准备好了吗?我们生活在一个最好的时代,也是一个最坏的时代。我相信这是很多人都赞同的观点,因为我们每天的生活,都被科技的革新和数字化时代的浪潮推着向前走。数字化已是大势所趋,它将会影响每一个人的法链衔接区块链数字资产追赃挽损新方法蔡欣法链衔接数字资产追赃挽损方法逻辑示意图区块链数字资产,是指基于区块链技术产生的可被持有和转移所有权的特定计算机编码。它不仅包括所谓的数字货币,也包括权利或物的映射指代物,如链上互联网数字陷阱毁掉一个人的一生到底有多容易,一款软件就搞定了,给大家分享一个现在比较常见的事件。一位大学生小李,某天闲着无事的时候注册了一个卖二手包包的免费软件,这几个月她每天都在软件上看不同款特斯拉确认Cybertruck今年无法交付日前,据特斯拉官方表示,旗下电动皮卡Cybertruck的交付时间将由原定的2021年底推迟至2022年,目前国内海外特斯拉官网的Cybertruck页面也已经把提车时间改成202互联网大佬中白手起家有几人?除了刘强东,雷军是白手起家的神话如今的互联网巨头,真正白手起家的只有两个人,一个是雷军,一个是刘强东,后者大家都熟知,但雷军有很多人不知道他的故事。我们都知道,刘强东是草根出身,红薯与玉米陪伴了刘强东童年的一日三实现人工智能的想象力51CTO。com快译首先请在脑海中想象一只橙色的猫。然后,想象同一只猫,皮毛已经变成了煤黑色。现在,想象这样一只猫在长城上昂首阔步。在上述一系列想象活动中,你大脑中的一系列神经元阿里巴巴要注意了!不只是丑闻,央视的一鲸落万物生含义深刻阿里巴巴最近又出了爆款新闻了,陪酒,性侵犯,以一种让人无法接受的形式呈现在大众面前,也让很多喜欢阿里巴巴的人对他有了新的认识。央视评阿里巴巴,一鲸落万物生有什么深刻含义呢?那就是任城市早财经阿里巴巴公布处理决定业务总裁和HRG引咎辞职绝地求生或成韩国游戏第一股国内新闻地方将预留部分专项债额度12月发行,明年额度将保持较高水平从多位地方财政地方债承销行人士处获悉,按照监管要求,地方将预留部分专项债额度在今年12月发行,这部分资金需在明年年