day09_java基础

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

synchronized 底层实现原理:

synchronized 可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进

入到临界区,同时它还可以保证共享变量的内存可见性。


Java 中每一个对象都可以作为锁,这是 synchronized 实现同步的基础:

1.普通同步方法,锁是当前实例对象

2.静态同步方法,锁是当前类的 class 对象

3.同步方法块,锁是括号里面的对象

synchronized 和 volatile 的区别是什么:

volatile 本质是在告诉 jvm 当前变量在寄存器(工作内存)中的值是不确定的,需要从

主存中读取; synchronized 则是锁定当前变量,只有当前线程可以访问该变量,其他线

程被阻塞住。


volatile 仅能使用在变量级别;synchronized 则可以使用在变量、方法、和类级别的。


volatile 仅能实现变量的修改可见性,不能保证原子性;而 synchronized 则可以保证

变量的修改可见性和原子性。


volatile 不会造成线程的阻塞;synchronized 可能会造成线程的阻塞。


volatile 标记的变量不会被编译器优化;synchronized 标记的变量可以被编译器优化。

相关文章
|
5月前
|
存储 Java 开发工具
Java基础 -
Java基础 -
24 0
|
存储 NoSQL MongoDB
day60_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
day38_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i
|
存储 Java
day07_java基础
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
|
缓存
day47_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
监控 负载均衡 算法
day34_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i
|
存储 NoSQL 算法
day53_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
负载均衡 Dubbo Java
day46_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
存储 SQL 分布式计算
day36_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i
|
NoSQL 安全 Redis
day54_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!