关于双重if的妙用问题。大家一起讨论讨论。。

亥尚 亥尚 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
今天在看书的时候看的这个问题。希望大家一起思考一下,代码如下:

volatile T* pInst = 0;
T* GetInstance()
{
if(pInst == NULL)
{
lock();
if(pInst == NULL)
pInst = new T;
unlock();
}
return pInst;
}

书上说,双重if在这里另有妙用,可以让lock的调用开销降低到最小。求解。。。考虑不出来啊。

可以先不用CPU乱序执行会打乱new那一句的执行,抛开逻辑,只看双重if。
...全文
评论 12
收藏 已收藏
分享
返回顶部
亥尚
非技术区 15,446 成员 58,111 内容