哈希表上的同步是否适用于整个类

时间:2014-09-22 13:28:12

标签: java

我对java有一个基本的疑问。

假设有一个A类,其中包含同步方法M.如果我为A类创建一个对象A1并访问该同步方法M,则对象A1被同步方法M锁定。

我正在创建一个返回类型为Hashtable的方法(在内部是一个同步的方法)它是否像上面的方法一样运行?在执行返回类型为Hashtable的方法之前,整个对象是否无法访问?

1 个答案:

答案 0 :(得分:0)

不,整个对象将无法访问。

但是会发生的是所有标记为synchronized的其他方法将阻塞,直到返回Hashtable的方法完成(通过返回值,抛出异常等)。 / p>

换句话说,如果方法M和N都是同步的,考虑到相同的对象实例,则无法处理直到另一个完成。并且可以随时执行未同步的方法A:)

顺便说一下,如果你需要更复杂的同步化,你可以在任何Object上进行同步......但通常在方法名称之前的关键字就足够了。