社区
杨德石的课程社区_NO_1
耗时17小时,百节课终于把Java多线程讲明白了!
帖子详情
011-synchronized简单使用
文若不是苟或
2025-12-24 14:37:09
课时名称
课时知识点
011-synchronized简单使用
简单使用synchronized,解决数据不一致问题
...全文
56
回复
打赏
收藏
011-synchronized简单使用
课时名称课时知识点011-synchronized简单使用简单使用synchronized,解决数据不一致问题
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
java 多线程
Synchronized
的
简单
介绍
synchronized
关键字永远同步java类中的静态方法和非静态方法,基本有
synchronized
同步方法和
synchronized
同步块两种方法(参考教程)。 同步方法 1.
synchronized
关键字只能用来同步方法,不能用来同步类变量 2.
synchronized
关键字可以同步类中静态与非静态方法,关键字地位置只需要在返回类型
使用
synchronized
块同步变量
由于在013行已经为sync创建了一个新的实例,假设method1先执行,当method1方法执行了013行的代码后,sync的值就已经不是最初那个值了,而method1方法锁定的仍然是sync变量最初的那个值。而在这时,staticMethod1正好执行到
synchronized
(sync),在staticMethod1方法中要锁定的这个sync和method1方法锁定的sync已经不是一个了,因此,这两个方法的同步性已经被破坏了。如果从类方法的角度来理解,可以通过类变量来同步相应的方法。
使用
Synchronized
块同步变量
我们可以通过
synchronized
块来同步特定的静态或非静态方法。要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用
synchronized
块括起来,并将这个类变量作为参数传入
synchronized
块。下面的代码演示了如何同步特定的类方法: 001 package mythread; 002 003 public class SyncT
黑马程序员——java小结_
011
_
synchronized
------- android培训、java培训、期待与您交流! ----------
synchronized
进阶
对于一些锁竞争的场景,可以通过设置参数(-XX:-UseBiasedLocking),禁用偏向锁,直接
使用
轻量级锁,目的时为了减少启动初期的锁升级开销。//输出结果是一样的。:当一个线程,首次访问同步代码块并获取锁时,会在对象头的 Mark Word 中存入该线程 ID。在单线程环境下,锁会偏向于第一个获取该锁的线程,后续该线程再次获取锁时不用竞争。,GC进行垃圾回收,并将锁的状态,标记为不再
使用
,JVM会将锁状态为无锁。当有另一个线程,尝试访问同一同步块时,偏向锁会升级为轻量级锁。
杨德石的课程社区_NO_1
1
社区成员
115
社区内容
发帖
与我相关
我的任务
杨德石的课程社区_NO_1
架构师们好,我是练习两年半的java实习生,喜欢唱跳rap篮球
复制链接
扫一扫
分享
社区描述
架构师们好,我是练习两年半的java实习生,喜欢唱跳rap篮球
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章