首页 > 其他分享 >synchronized 和 Lock 的区别

synchronized 和 Lock 的区别

时间:2023-03-19 15:12:18浏览次数:52  
标签:释放 synchronized 区别 Lock 发生 死锁 线程

  • Lock 是一个接口,而 synchronized 是 Java 中的关键字,synchronized 是内置的语言实现;
  • synchronized 在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生;而 Lock 在发生异常时,如果没有主动通过 unLock() 去释放锁,则很可能造成死锁现象,因此使用 Lock 时需要在 finally 块中释放锁;
  • Lock 可以让等待锁的线程响应中断,而 synchronized 却不行;
  • 通过 Lock 可以知道有没有成功获取锁,而 synchronized 却无法办到;

 

标签:释放,synchronized,区别,Lock,发生,死锁,线程
From: https://www.cnblogs.com/xfeiyun/p/17233273.html

相关文章

  • 能不能说一说 TCP 和 UDP 的区别?
    TCP是一个面向连接的、可靠的、基于字节流的传输层协议。而UDP是一个面向无连接的传输层协议。和 UDP 相比,TCP有三大核心特性:面向连接。所谓的连接,指的是客户端和服......
  • sql join on和不用join区别_图解 SQL 各种 JOIN,太有用了!
    原文地址:https://blog.csdn.net/weixin_39965283/article/details/111390490  前言在各种问答社区里谈及SQL里的各种JOIN之间的区别时,最被广为引用的是CodeProj......
  • 字符设备与块设备的区别
    块设备:系统中能够随机不按顺序地访问固定大小的数据片的设备叫做块设备,这些数据片就称作块。常见的块设备有硬盘,软盘驱动器,闪存等字符设备:系统中按字符流的方式被有序访问......
  • 使用synchronized对并发性的影响
    1前言非静态方法的同步锁是当前对象(this)(对象锁)静态方法的同步锁是当前类的字节码(类锁)不同的锁之间能并发2同一对象内本节主类与资源类如下:classResorce{//资源......
  • lock锁
    packageedu.wtbu;importjava.util.concurrent.locks.ReentrantLock;publicclassDemo01{publicstaticvoidmain(String[]args){Locklock=newLoc......
  • 循环语句区别(for while do...while)
    以下观点仅代表个人想法,不是标准C语言中有三种循环控制语句(goto不作考虑),那么这三个语句除了语法不同外,是否还有其他区别呢?像if语句和switch...case语句之间,除了语法不同......
  • 数据库中的drop、truncate、 delete的区别
    drop直接删掉表。truncate删除表中数据,再插入时自增长id又从1开始。delete删除表中数据,可以加where字句。DELETE语句会记录日志以便进行回滚操作;TRUNCATETABLE不会......
  • Java synchronized的实现原理
    通常在多线程执行的过程中,我们需要考虑一些线程安全的问题,而线程安全问题中最常用的解决策略之一就是“锁”。加锁的本质,就是为了解决在多线程场景中对于共享数据访问的......
  • mysql小知识点---interactive_timeout和wait_timeout区别
    interactive_timeout定义了对于交互式连接(比如使用cmd命令窗口或者在linux上连接msyql),服务器等待的最大时间,如果超过这个时间,服务端仍然没有受到数据,则会关闭连接;【我理解......
  • C++ mutex,lock,unlock,lockguard
    //model/util.h#pragmaonce#include<algorithm>#include<chrono>#include<ctime>#include<fstream>#include<iomanip>#include<iostream>#include<map>......