当前位置:  开发笔记 > 编程语言 > 正文

静态成员需要特殊的同步块吗?

如何解决《静态成员需要特殊的同步块吗?》经验,为你挑选了1个好方法。

我有一个看起来像这样的类:

public class Test {

private static final Object someObject = new Object();

public void doSomething()
{
    synchronized (someObject) {
        System.out.println(someObject.toString());
    }
}

}

我可以考虑同步对象,还是有问题,因为它是静态成员?

编辑:请注意,不同的线程可能正在访问doSomething(),并且在这种情况下必须以线程安全的方式访问该对象.



1> David M. Kar..:

通过使用静态对象作为监视对象,只有一个使用Test类的任何实例的线程可以进入同步块.如果监视器对象不是静态对象,则持有Test类的不同实例的其他线程可以进入同步块.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有