C++: std::call_once vs atomic

news/2025/2/8 22:16:31

文章目录

  • 简介
  • 引子
  • 分析
  • 深入
  • pthread_once
  • 对比

简介

这里不是介绍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

http://www.niftyadmin.cn/n/1525690.html

相关文章

Kernel:glibc: pthread_create 返回 EPERM (1)错误分析

文章目录参考解决方法遇到了一个返回1(permission deny的错误)参考 https://stackoverflow.com/questions/9313428/getting-eperm-when-calling-pthread-create-for-sched-fifo-thread-as-root-on-lin 解决方法 https://blog.csdn.net/qq_36428903/art…

Openssl, Alert, Fatal, handshake failure 40

文章目录 错误原因代码错误 在测试人员发现,客户端发送到服务端的Client Hello消息被拒掉了,原因是: Transport Layer Security TLSv1.2 Record Layer: Alert (Level: Fatal, Description: Handshake Failure) Content Type: Alert (21) Version: TLS 1.2 (0x0303) Length:…

Linux: 命令:echo

文章目录软件使用说明需要注意的问题软件 [root10 ~]# which echo /usr/bin/echo [root10 ~]# file /usr/bin/echo /usr/bin/echo: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x 86-64.so.2, for GNU/Linux 3…

c/c++ 静态代码检查工具

文章目录道理呢大家都懂,但是需要时间消化,而且人还是易犯错误的动物lintgcc 12sonarqube道理呢大家都懂,但是需要时间消化,而且人还是易犯错误的动物 所以才有了,这些个静态代码检查工具。 lint 古老的工具。 Lint…

gcc: error: : No such file or directory

分享的原因,一开始把我给唬住了,怎么可能出现这个错误! /usr/bin/gcc ‘’ a.c // 注意这里有一对单引号,gcc 认为这个单引号里的也是个文件,不过是一个空串,找不到。所以报下面的错误,一开始感…

工具软件:Citrix

文章目录简介遇到的问题输入发的问题屏幕大小问题https://help-docs.citrix.com/zh-cn/citrix-workspace-app/windows/about.html简介 看着还是很强的,可以让用户远程访问桌面,应用程序 适用于 Windows 的 Citrix Workspace 应用程序提供使用 Citrix Vi…

Coredump 问题分析思路

欢迎大家提意见。 Windows 编程推荐文章 https://blog.csdn.net/chenlycly/article/details/124996473

Coredump:core与kernel的区别,以及coredump具体指什么?

文章目录 kernel vs corekernelcorecoredumpkernel 生成普通coredump的机制kernel自己的crashkernel vs core 都是内核的意思,但是普通的理解应该是这样:(为什么叫普通?就是在一个未接触过计算机领域的人,一开始得到的理解) kernel kernel,这个单词,计算机领域文档里…