美文网首页
C11头文件声明了创建和管理线程,信号,条

C11头文件声明了创建和管理线程,信号,条

作者: 阿群1986 | 来源:发表于2019-06-19 21:51 被阅读0次

作者Danny Kalev 是通过以色列系统分析师协会认证的系统分析师, 并且是专攻C++的软件工程师. Kalev 写了多本C++的书籍,同时给不同的软件开发者站点投搞C++文章. 他是C++标准委员会的成员, 还获得了通用语言学的硕士学位.

原始鏈接:http://blog.chinaunix.net/uid-29843570-id-4470095.html已经被和谐

新的C11头文件<threads.h>声明了创建和管理线程, 信号, 条件变量的函数, 以及_Atomic类型限定符.

另一个新的头文件<stdatomic.h>声明了不可中断对象访问工具. 最后, C11引入一个新的存储类修饰符_Thread_local (等价于C++11 thread_local). 声明为_Thread_local的变量不在多线程之间共享. 确切的说, 每个线程持有变量单独的拷贝.

作为一个内幕, 如果你在正在找一个人为笨拙的关键字_Thread_local负责的话, 就找我吧. 在21世纪早期, 当C++标准委员会致力于多线程支持的时候, 最初的线程本地存储的提议是使用关键字__thread , 由于不能清楚的表达该关键字的意图,因此我认为这既不安全也不易懂 (毕竟, __thread并不创建线程!), 并且还可能碰巧和旧的使用__thread修饰用户声明的标识符的代码冲突. 我建议把__thread改为thread_local并且被接受了. 此后thread_local渗透进了其它编程语言, 包括C11. 礼物和恐吓邮件都是受欢迎的!

C11另一个线程相关的特性是quick_exit()函数, 该函数可以让你在exit()函数不起作用时终止程序, 例如当线程的cooperative cancellation是不可能的时候. quick_exit()函数确保使用at_quick_exit()注册的函数以它们注册顺序的相反顺序被调用. 然后at_quick_exit()调用_Exit(), 同exit()相比该函数不会刷新进程文件描述符.

相关文章

  • C11头文件声明了创建和管理线程,信号,条

    作者Danny Kalev 是通过以色列系统分析师协会认证的系统分析师, 并且是专攻C++的软件工程师. Kale...

  • 2018-11-22 std::thread(c++)傻瓜教程

    新建多线程工程 cmake文件 加入编译选项c11和多线程 很重要!!不然会爆出错误 包括头文件#include ...

  • 【多线程】NSThread

    1️⃣创建和启动线程简单说明 一个NSThread对象就代表一条线程 创建、启动线程 主线程相关用法 其他用法 创...

  • 多线程 ---- NSThread和线程安全

    创建和启动线程 一个NSThread对象就代表一条线程 主线程相关方法 其他方法 获得当前线程 线程的名字 其他创...

  • iOS 多线程--NSThread

    一、创建和启动线程 一个 NSThread 对象代表一条线程。 创建和启动线程 主线程相关用法 获得当前线程 线程...

  • 线程的创建和控制

    线程的创建和控制 进程和线程的关系:进程提供资源,线程使用资源完成工作 创建线程函数 线程的控制 更多的API 创...

  • 重点 (三) : 多线程:NSThread

    创建和启动线程 一个NSThread对象就代表一条线程 创建、启动线程 NSThread *thread = [[...

  • 线程池

    降低线程创建和销毁的消耗,提高速度,节约资源,线程可管理。 参数含义 int corePoolSize核心线程数 ...

  • Linux下多线程编程详解

    简介 线程创建 线程属性设置 线程参数传递 线程优先级 线程的数据处理 线程的分离状态 互斥锁 信号量 一 线程创...

  • NSThread多线程

    创建和启动线程 一个NSThread对象就代表一条线程创建、启动线程NSThread *thread = [[NS...

网友评论

      本文标题:C11头文件声明了创建和管理线程,信号,条

      本文链接:https://www.haomeiwen.com/subject/bdwlqctx.html