java 同步的方法_关于Java中的同步方法

我有一个关于Java中方法同步的问题.

考虑一个具有3个同步方法的类.

class MyClass{

public synchronized void methodA(){ ... }

public synchronized void methodB(){ ... }

public synchronized void methodC(){ ... }

}

考虑myObject,myClass的一个实例.以下内容哪些是对的?

选项1:

线程不可能在myObject中运行任何同步方法,而另一个线程在myObject中运行任何同步方法.

例如,当线程1运行实例myObject的methodA()时,线程2不能运行任何方法methodA(),methodB()和methodC().

选项2:

线程不可能在myObject中运行特定的同步方法,而该特定方法由另一个线程运行.

例如,当线程1运行实例myObject的methodA()时,线程2不能运行方法methodA(),但可以运行methodB()或methodC(). (意思是,三个同步方法没有“连接”).

解决方法:

第一个选项是正确的,因为基本上有一个锁用于所有方法.

标签:java,multithreading,synchronization

来源: https://codeday.me/bug/20190629/1322581.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值