具有类级变量的Java静态方法

时间:2014-02-18 20:09:41

标签: java multithreading static

当多个线程访问时,我有静态方法,数据更新不正确,

public class A
{

    private static B b=null;

    public static B create()
    {
        b= new B();
        return b;
    }

    public static B process()
    {
        // doing some processing with b;
        return b;
    }
}

如果多个线程同时访问,B会受到影响吗?

3 个答案:

答案 0 :(得分:0)

如果要保护该值并确保其正确更新,则应使该方法同步。

答案 1 :(得分:0)

不,因为b存在于对象级别,并且不能静态访问。

答案 2 :(得分:0)

在我们看到您访问和使用b的方式之前,没有人能说出来。

然而,我能说的一件事是,静态与否通常不是影响线程安全性的主要因素。