当前位置:网站首页>多线程之锁
多线程之锁
2022-07-31 17:25:00 【51CTO】
线程锁分两种:内置锁(synchronized)和显式锁(ReentrantLock)
简单对比:
主要相同点:Lock能完成synchronized所实现的所有功能
主要不同点:Lock有比synchronized更精确的线程语义和更好的性能,当许多线程都在争用同一个锁时,使用 ReentrantLock 的总体开支通常要比 synchronized 少得多。
synchronized会自动释放锁,而Lock一定要求程序员手工释放,为了防止忘记释放锁,一般在finally从句中释放。
Synchronized不能设置等待时间,所以如果等待的资源一直被占用,可能会出现死锁.
ReentrantLock会灵活一点,可以设置等待的时间,如果等待的时间到了,就会去做其它的任务.
更多了解
边栏推荐
猜你喜欢
随机推荐
20.支持向量机—数学原理知识
[Source code analysis] BeanFactory and FactoryBean
Mariabackup实现Mariadb 10.3的增量数据备份
阿里三面:MQ 消息丢失、重复、积压问题,如何解决?
go mode tidy出现报错go warning “all“ matched no packages
cas与自旋锁(轻量级锁就是自旋锁吗)
宁波大学NBU IT项目管理期末考试知识点整理
Kotlin协程:续体、续体拦截器、调度器
Combinatorics Notes (6) Associative Algebra of Locally Finite Partially Ordered Sets, Möbius Inversion Formula
TestCafe之如何进行调试
多主复制下处理写冲突(1)-同步与异步冲突检测及避免冲突
淘宝/天猫获得淘口令真实url API
21.支持向量机—核函数的介绍
Flutter gets the height of the status bar statusbar
多数据中心操作和检测并发写入
adb shell 报错error: device unauthorized
智能垃圾桶(九)——震动传感器(树莓派pico实现)
中文编码的设置与action方法的返回值
【luogu P8326】Fliper (Graph Theory) (Construction) (Eulerian Circuit)
server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none 失败