专栏名称: 顶尖架构师栈
分享业务架构、技术架构、系统设计方案,以及微服务架构源码,提供业务场景答疑
今天看啥  ›  专栏  ›  顶尖架构师栈

【第18期】说下synchronized底层原理

顶尖架构师栈  · 公众号  ·  · 2024-09-26 08:01

文章预览

        在并发编程中存在线程安全问题,主要原因是在JMM内存模型下,多线程操作共享数据会得到与我们预期不同的结果,而synchronized关键字,可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见,即可见性,但是你了解其底层原理吗?今天我们谈一谈java面试必问送分题,synchronized底层原理 一、synchronized的使用 1 synchronize的作用 (1)多线程之间的互斥访问,用于线程之间同步 (2)保证共享变量被修改能及时可见,即可见性 (3)有效解决指令重排序 2 synchronized作用范围 修饰普通方法:作用于当前对象实例,进入同步代码前要获得当前对象实例的锁 修饰静态方法:作用于当前类,进入同步代码前要获得当前类对象的锁,synchronized 关键字加到 static 静态方法和 synchronized(class)代码块上都是是给 Cla ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览