为了账号安全,请及时绑定邮箱和手机立即绑定

为什么mInstance要进行两次null的判断

if(mInstance==null)
{
synchronized(FestivalLab.class) //让线程互斥的进入;注意if语句;
{
if(mInstance==null)
mInstance=new FestivalLab();
}

}

正在回答

1 回答

就说第二次判空吧 线程ab都通过了第一个if 此时因为锁的机制 假设a线程先执行实例化了 则mInstance已经不为空 b线程就不能再去实例化了 若没有第二次判断 则b线程会在a线程实例化后再次执行实例化

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么mInstance要进行两次null的判断

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信