2013-06-18 28 views
6

我正在寻找一个很好的名字给线程安全/内部同步的数据结构。命名(通用)线程安全的数据结构?

C++标准使用术语atomic,但是atomic has some rather special meaning。 Microsoft在其Thread-Safe Collections(或Parallel Containers中的C++ _concurrent)中使用术语Concurrent

我真正想要的是(值)类型的通用包装,它提供了一组与std :: atomics类似的操作,但具有不同的名称和一些从中派生的typedefs。 (用例:类似std::atomic for std::string

您认为以下哪项有用/无用,为什么?

  • SynchronizedThingamajig(或thingamajig_synchronizedsynchronized_thingamajig
  • Concurrent...
  • ThreadSafe...
  • Safe...
  • Parallel...
  • Locked...
  • Mutex ......或Mutexed...
  • Multithreaded...

对于我给字符串例子,也许synchronized_stringconcurrent_string将使最有意义的,或对其他任何含义,那就是冲突?

+2

Microsoft PPL和Intel TBB都使用'concurrent_ *'。我唯一的建议是:当你的意思是“并发”时,不要使用'parallel'。 (_Parallel_是一种并发性,但这些数据结构即使在单个处理器时也可以工作 - 多路复用多个线程。)您也可以查看['monitor'](https://en.wikipedia.org/wiki/Monitor_ (同步))。 –

回答

5

从评论有用的答案:

无论微软PPL和英特尔TBB使用concurrent_*。我唯一的 建议是:当你的意思是并发时不要使用并行。 (并行 是一种并发性,但这些数据结构应该在单个处理器上工作,即使在多个线程上多路复用多个时钟。)您可能也会看monitor模式。

- 徘徊逻辑6月18日在12:02

对此我想补充一点,从我给的选择,思考一些关于它后,只concurrent和​​似乎是有道理的。

0

我想你应该试试这个名字:

SafeContainer

+6

怪物是否安全? –