首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++11线程实现后端

C++11线程实现后端
EN

Stack Overflow用户
提问于 2012-10-09 20:47:46
回答 1查看 4.3K关注 0票数 0

可能重复: In g++ is C++ 11 thread model using pthreads in the background?

我从某些地方了解到,OpenMP是在Linux系统中使用PThreads实现的,尽管它们在我看来完全不同。考虑到C++11线程和PThreads之间的(相对)相似之处,我一直在想,

是否有人知道是否使用C++11 PThreads gcc clang**?**中的其他多线程库实现线程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-09 21:12:30

C++ 2011多线程有多个部分:

  1. 高级抽象,如std::threadstd::mutexstd::condition_variable等,这些抽象都是根据libc++ (clang的本地库)和libstdc++ (gcc的本地库)的线程来实现的。libstdc++使用一个间接(gthr.h),它可以用于,例如,存根的事情,一个线程的实现。从不同同步类的来源来看,这是非常明显的。
  2. 底层的同步工具,即atomics和各种内存可见性控件,都无法从p线程中获得.gcc和clang似乎都使用编译器内置来实现这些功能,这可能会创建合适的指令。不过,我还没有找到其中任何一个的实际代码。
  3. 仅在库中实现是不够的:需要防止编译器在同步原语中重新排序指令,并且需要使值在适当的位置可见。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12808188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档