2013-06-18 51 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

怪物是否安全? –