Является ли потоково безопасным сабж. Т.е. могут ли много потоков вставлять и удалять элементы из одного объекта-контейнера. Есть ли там критические секции и их локи/анлоки. Спасибо!!!
Здравствуйте, Аноним, Вы писали:
А>Является ли потоково безопасным сабж. Т.е. могут ли много потоков вставлять и удалять элементы из одного объекта-контейнера. Есть ли там критические секции и их локи/анлоки. Спасибо!!!
а в MSDN написано:
Container Classes (vector, deque, list, queue, stack , priority_queue, valarray, map, multimap, set, multiset, basic_string, bitset) and complex
For reads to the same object, the object is thread safe for reading:
From one thread at a time when no writers on other threads.
From many threads at a time when no writers on other threads.
For writes to the same object, the object is thread safe for writing from one thread when no readers on other threads
For reads to different objects of the same class, the object is thread safe for reading:
From one thread at a time.
From one thread at a time when no writers on other threads.
From many threads at a time.
From many threads at a time when no writers on other threads.
For writes to different objects of the same class, the object is thread safe for writing:
From one thread when no readers on other threads.
From many threads
Re[2]: std::queue
От:
Аноним
Дата:
12.10.04 06:02
Оценка:
Здравствуйте, Esperar, Вы писали:
E>Здравствуйте, Аноним, Вы писали:
А>>Является ли потоково безопасным сабж. Т.е. могут ли много потоков вставлять и удалять элементы из одного объекта-контейнера. Есть ли там критические секции и их локи/анлоки. Спасибо!!! E>а в MSDN написано: E>Container Classes (vector, deque, list, queue, stack , priority_queue, valarray, map, multimap, set, multiset, basic_string, bitset) and complex E>For reads to the same object, the object is thread safe for reading:
E>From one thread at a time when no writers on other threads. E>From many threads at a time when no writers on other threads. E>For writes to the same object, the object is thread safe for writing from one thread when no readers on other threads
E>For reads to different objects of the same class, the object is thread safe for reading:
E>From one thread at a time. E>From one thread at a time when no writers on other threads. E>From many threads at a time. E>From many threads at a time when no writers on other threads. E>For writes to different objects of the same class, the object is thread safe for writing:
E>From one thread when no readers on other threads. E>From many threads
Я это читал, интересует будет ли все хорошо, если много потоковов будут добавлять и удалять элементы из одного объекта. Такового варианта я ненашел. Ставим семафор
Здравствуйте, Аноним, Вы писали:
А>Я это читал, интересует будет ли все хорошо, если много потоковов будут добавлять и удалять элементы из одного объекта.
Здравствуйте, Аноним, Вы писали:
А>Является ли потоково безопасным сабж. Т.е. могут ли много потоков вставлять и удалять элементы из одного объекта-контейнера. Есть ли там критические секции и их локи/анлоки. Спасибо!!!
Насколько мне известно, в реализациях stl-ных контейнеров не предусмотрено средств синхронизации потоков, т.к. это вещь платформо-зависимая. Синхронизацию нужно добавлять вручную
sadomovalex:
> Насколько мне известно, в реализациях stl-ных контейнеров не предусмотрено средств синхронизации потоков, т.к. это вещь платформо-зависимая.
Каждая реализация контейнеров стандартной библиотеки может быть платформенно-зависимой, так что добавить внутрь функций контейнера захват и освобождение мьютексов не проблема. Проблема в принципиальной невозможности обеспечить "потокобезопасность" контейнеров стандартной библиотеки без внешней синхронизации: http://rsdn.ru/Forum/?mid=104051