6

Я ищу хорошее имя для создания структур данных, которые являются потокобезопасными/внутренне синхронизированными.Именование (общего назначения) потокобезопасных структур данных?

В стандарте C++ используется термин atomic, но atomic has some rather special meaning. Microsoft использует термин Concurrent в своих Thread-Safe Collections (или в C++ _concurrent в Parallel Containers).

Я бы хотел, чтобы это была общая оболочка для типов (значений), которая предоставляет аналогичный набор операций для того, что std :: atomics делает, но с другим именем и некоторыми typedefs, полученными из него. (пример использования: что-то вроде std::atomic for std::string)

Какое из следующих вы считаете полезным/полезным и почему?

  • SynchronizedThingamajig (или thingamajig_synchronized или synchronized_thingamajig)
  • Concurrent...
  • ThreadSafe...
  • Safe...
  • Parallel...
  • Locked...
  • Mutex ... или Mutexed...
  • Multithreaded...

Для примера строки я дал, возможно, synchronized_string или concurrent_string бы больше смысла, или бы, что столкновение с любым другим подтекстом?

+2

Оба Microsoft PPL и Intel TBB используют 'concurrent_ *'. Мое единственное предложение: не использовать 'parallel', когда вы имеете в виду' concurrent'. (_Parallel_ - это один из видов параллелизма, но эти структуры данных должны работать даже на одном процессоре с временным мультиплексированием нескольких потоков.) Вы также можете посмотреть ['monitor'] (https://en.wikipedia.org/wiki/Monitor_ (синхронизация)). –

ответ

5

Полезный ответ от комментариев:

Оба Microsoft PPL и Intel TBB использовать concurrent_*. Мое единственное предложение : Не используйте параллель, когда вы имеете в виду одновременное. (Параллельный - это один из видов параллелизма, но эти структуры данных должны работать даже с на однопроцессорном мультиплексировании с временным мультиплексированием.) Вы можете также посмотреть на шаблон monitor.

- Блуждающий Logic Jun 18 12:02

К которому я мог бы добавить, что из вариантов, которые я дал, подумав еще немного об этом, только concurrent и synchronized кажется, имеет смысл.

0

Я думаю, вы должны попробовать это имя:

SafeContainer

+6

Безопасно ли от монстров? –

Смежные вопросы