前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【说站】java Synchronized的三种作用

【说站】java Synchronized的三种作用

作者头像
很酷的站长
发布2022-11-23 12:51:33
1680
发布2022-11-23 12:51:33
举报
文章被收录于专栏:站长的编程笔记

java Synchronized的三种作用

1、确保方法或代码块在操作中的原子性

同步化保证了符号内部或代码块内部资源(数据)的互斥访问。也就是说,由同一时间内的相同的监控锁所监控的代码,至多可以有?个线程进行访问。

在多线程环境中,Synchronized关键字描述的方法或代码块在同一时间只能由一个线程访问,在持有当前Monitor的线程执行完成之前,其他线程若要调用相关的方法,必须排队,知道持有当前Monitor的线程执行结束,释放Monitor,然后下一个线程将执行结束。

当多个监视器的情况下,多个监视器不会互相排斥。

2、确保监视资源的可见,在多线程环境中保证监控资源上的数据同步。

也就是,当任何线程获得Monitor之后将共享内存中的数据复制到site的缓存中。在此过程中,首先将缓存数据复制到共享内存中。

3、确保线程间的有序运行

同步化的原子性保证了它所描述的方法或代码操作的有序性,并且在同一时间最多只能有一个线程访问,并且不会触发JMM指令重排机制。

以上就是java Synchronized的三种作用,希望对大家有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • java Synchronized的三种作用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档