C ++ 11中的TBB等效物

赫格特

我有一个旧的代码库,我想在新的环境中使用一些实现。旧的基础使用了我真的不熟悉的TBB框架。

C ++ 11中是否有与这些TBB类型等效的实现:

  • tbb :: enumerable_thread_specific <...>
  • Mutex_t
  • 互斥锁:: scoped_lock

如果不是,那么:我如何转换它们的任何技巧(指向良好的TBB摘要,教程等的链接),还是我需要自己研究整个TBB文档?

(并且不可以。将TBB插入项目不是一种选择。)

编辑:忘记提及tbb :: this_tbb_thread ::对此有任何建议吗?

卡休森

代码中的TBB功能在C ++ 11中确实具有几乎等效的功能(或者您可以简单地创建一个功能)。

  1. enumerable_thread_specific<T>是线程本地存储的实现。它可以使用平台的本地存储,也tbb::concurrent_vector可以保存实例。默认设置为不使用平台线程本地存储密钥。C ++ 11具有thread_local限定符,因此,根据enumerable_thread_specific使用的方式,您可以将其替换thread_local为相同类型版本。如果您正在使用该结构来保留数据或在线程本地上下文之外访问数据,则可能需要为您完成工作。
  2. mutex_t是通用的互斥锁类型,可以用替换std::mutex,尽管开发人员可能选择了spin_mutex受替换影响的特定实现(例如)。
  3. scoped_lock是一个RAII对象,可在构造上锁定互斥锁,离开范围时将解锁该互斥锁(使其具有一定的异常友好性。)std::lock_guard<std::mutex>如果您使用的是C ++ 17,则可以使用它,否则可以自己滚动。
  4. 自从我阅读了收益文档以来已经有一段时间了。我相信该实现会在放弃时间片之前寻找其他可能的任务。您可以用来std::this_thread::yield()重新分配时间片,但是如果代码使用的是TBB构造,则行为可能会有所不同。您没有提到任何其他TBB东西的事实对我来说意味着程序中没有任何东西,并且与tbb::yield()做了相同的事情std::this_thread::yield()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++ 11中的TBB等效物

来自分类Dev

C#是否与C ++ 11中的decltype等效?

来自分类Dev

C11中的pthread_attr_t等效项

来自分类Dev

与C ++ 11的unordered_map中的hash_map :: resize()等效

来自分类Dev

c ++ DirectX 11 glGetUniformLocation等效项

来自分类Dev

c ++ DirectX 11 glGetUniformLocation等效项

来自分类Dev

C ++中的QVariant等效什么?

来自分类Dev

wstring在C中的等效项

来自分类Dev

C ++中的instanceof等效项

来自分类Dev

C ++中的SslStream类等效

来自分类Dev

C ++中的instanceof等效项

来自分类Dev

wstring在C中的等效项

来自分类Dev

与C#中的ManualResetEvent等效的本机C ++

来自分类Dev

在C ++中,等效于<map>的C#?

来自分类Dev

c ++中的“ while(c = getchar())”等效

来自分类Dev

与C#中的ManualResetEvent等效的本机C ++

来自分类Dev

c ++ 11 operator []是否等效于地图插入?

来自分类Dev

c ++ 11 operator []是否等效于地图插入?

来自分类Dev

使用C ++的TBB链接

来自分类Dev

在C ++中是否有等效的Java“ volatile”?

来自分类Dev

C#中的wtol等效项

来自分类Dev

C#中的CodePointAt等效项

来自分类Dev

目标c中的LocationManager .onLocationChanged的等效项

来自分类Dev

C ++中的Struct hack等效项

来自分类Dev

与C#中的SQL LIKE等效

来自分类Dev

C#中的Ajax发布等效项

来自分类Dev

C#中的等效charCodeAt()是什么?

来自分类Dev

Java在C#中的等效位置

来自分类Dev

JavaScript中的C#字典等效项