几个关于java线程安全的老问题。

来源:百度知道 编辑:UC知道 时间:2024/05/12 11:07:28
1 只有在访问同一个对象的时候,或者单例的时候才会出现线程安全问题。

2 java类中定义静态变量和实例变量都不是线程安全的(如果不加锁的话)

3 静态方法可以被并发访问。

4 java类中定义了一个静态方法,如果该方法没有使用实例变量或者静态变量,
那么他就是线程安全的,如果使用了,就不是线程安全的

以上4点说得都对吗?

public class TestSingletion
{
private TestSingletion(){}
public static TestSingletion instance= null;
public static TestSingletion getInstance()
{
if(instance==null)
{
instance = new TestSingletion();
return instance;
}
else
{
return instance;
}
}

}
上面这个类
因为静态方法调用了静态变量,所以单例模式不是线程安全的?对吗?

1.错,只有当多个线程访问并修改同一个带属性的对象时才产生线程安全问题
2.在多线程共享的情况下成立
3.仍然会有线程安全问题,除非不使用任何共享属性
4.没看出问题

5.对的

我也不清楚。。。等待高手回答