java中synchronized的范围

我在学习java的线程时遇到的问题:synchronized这个关键字到底“锁”的范围是什么。

结论:

类方法中,synchronized锁住的是对象this,只有调用同一个对象的方法才需要获取锁。同时,同一个对象中所有加了synchronize的方法只能一次调用一个

静态方法中,synchronized锁的是整个类对象,类似于(X.class),该类中所有加了synchronized的静态方法,一次只能调用一个

一开始,我以为加上synchronized关键字的方法,这个方法只能被一个线程访问。一开始这是没有问题的,因为一开始的学习过程中一个类中只有一个方法加上了synchronized。但是学到后来时,一个类中有两个方法被加上synchronized,我以为,如果一个线程访问A方法,同时一个线程访问B方法。这样是可以的。但是后来我查了百度。一个类中所有加synchronized的方法,这所有的方法是互斥访问的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值