如果Java中的monitor对象不同,2个线程可以执行同一个同步实例方法吗?

问题描述 投票:0回答:1

我是java并发的新手,我知道实例方法同步意味着一次只有一个线程可以执行该方法。但是这个东西依赖于monitor对象吗?如果监视器对象不同,2个线程可以同时执行相同的同步实例方法吗?或者这是不可能的?谢谢!

java multithreading concurrency synchronized
1个回答
0
投票

如果实例方法被声明为

synchronized
,这意味着它在
this
上隐式同步,因此根据定义,受监视的对象将是相同的,并且在给定时间只有一个线程可以执行该方法。

如果该方法未声明为

synchronized
,而是使用显式
synchronized
块,则仅使用相同的监视器对象将阻止并发执行。如果两个线程使用不同的监视器对象,它们可以并发执行。

© www.soinside.com 2019 - 2024. All rights reserved.