if条件为什么要进行两次取反操作
发布网友
发布时间:2022-12-09 19:13
我来回答
共1个回答
热心网友
时间:2024-11-29 19:47
if(s==null) //第一个if:当s != null的时候,逻辑块直接结束,返回数据.但是当s ==null的时候,存在N个进程同时进入下面的语句.
{
synchronized(Single.class) //锁住对象,同一时间之运行一个进程
{
if(s==null) //第二个if,第一个进程 创建了s之后,之后的进程就不必再运行下面的new语句;从而直接返回数据
s = new Single();
}
}