day10_java基础

简介: 自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!

synchronized 和 Lock 有什么区别?


首先 synchronized 是 java 内置关键字,在 jvm 层面,Lock 是个 java 类;

synchronized 无法判断是否获取锁的状态,Lock 可以判断是否获取到锁;

synchronized 会自动释放锁(a 线程执行完同步代码会释放锁 ;b 线程执行过程中发

生异常会释放锁),Lock 需在 finally 中手工释放锁(unlock()方法释放锁),否则容易造成线程死锁;

用 synchronized 关键字的两个线程 1 和线程 2,如果当前线程 1 获得锁,线程 2 线程等待。

如果线程 1 阻塞,线程 2 则会一直等待下去,而 Lock 锁就不一定会等待下去,如果尝试获取不到锁,线程可以不用一直等待就结束了;

synchronized 的锁可重入、不可中断、非公平,而 Lock 锁可重入、可判断、可公平(两者皆可);

Lock 锁适合大量同步的代码的同步问题,synchronized 锁适合代码少量的同步问题。


最后,总结!

学无止境!

更新的目的在于回顾基础,也能很好的帮自己抓住细小的问题,从而慢慢规范自己!接下来自己会慢慢积累,所学即所用!

相关文章
|
4月前
|
存储 安全 算法
JAVA基础大汇总~
java必备基础,但是看之前你得有点基础哈哈哈
|
运维 Dubbo Java
day35_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i
day38_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i
|
NoSQL Java 数据库连接
day40_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
消息中间件 RocketMQ
day58_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
缓存
day47_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
前端开发 Java 数据安全/隐私保护
day41_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
负载均衡 算法 Java
day44_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
安全 Java 编译器
day05_java基础
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!