C++: std::call_once vs atomic

简介

这里不是介绍call_once的详细用法,可以在网上搜。https://en.cppreference.com/w/cpp/thread/call_once
这里介绍一下call_once在glibc++里的实现,与atomic的对比。

引子

有个同事,犯了一个错误,详情见:https://mzhan017.blog.csdn.net/article/details/125399872
如果修改这个问题呢?是使用atomic,还是call_once?

分析

回答上面的问题,我们只能通过看内部实现;
atomic在x86机上的实现是硬件架构提供的支持:https://blog.csdn.net/qq_36428903/article/details/121578801
再来看看call_once,是定义在mutex头文件里:
是一个函数模板,看着这段代码,就让人云里雾里。。。。

  /// call_once
  template

猜你喜欢

转载自blog.csdn.net/qq_36428903/article/details/125419674