62,615
社区成员
发帖
与我相关
我的任务
分享
if( defaultReadOnly!=null ){
return defaultReadOnly.booleanValue();
}
可能会读两次defaultReadOnly, 那么这当中可能会被改变,产生问题, 如果使用lz提供的代码, 只会读一次, 怎么无法解决多线程问题?虽然这里没法控制多个线程的执行顺序...
不是所有的多线程都需要加锁的, 锁加的多了, 导致多个线程串行执行, 再加上加锁的开销, 效率可能还不如单线程呢........
public boolean getDefaultReadOnly(){
if( defaultReadOnly!=null ){
return defaultReadOnly.booleanValue();
}
return false:
}
就有可能产生错误, 因为在返回defaultReadOnly.booleanValue()的时候defaultReadOnly可能已经为null了, 解决这个问题要么加锁,要么使用lz给出的代码
public boolean getDefaultReadOnly(){
return defaultReadOnly==null?false:defaultReadOnly.booleanValue();
}