std::queue
От: Аноним  
Дата: 12.10.04 05:41
Оценка:
Является ли потоково безопасным сабж. Т.е. могут ли много потоков вставлять и удалять элементы из одного объекта-контейнера. Есть ли там критические секции и их локи/анлоки. Спасибо!!!
Re: std::queue
От: Esperar  
Дата: 12.10.04 05:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Является ли потоково безопасным сабж. Т.е. могут ли много потоков вставлять и удалять элементы из одного объекта-контейнера. Есть ли там критические секции и их локи/анлоки. Спасибо!!!

а в 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

Я это читал, интересует будет ли все хорошо, если много потоковов будут добавлять и удалять элементы из одного объекта. Такового варианта я ненашел. Ставим семафор
Re[3]: std::queue
От: lst Россия  
Дата: 12.10.04 06:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я это читал, интересует будет ли все хорошо, если много потоковов будут добавлять и удалять элементы из одного объекта.


Нет. Нужна синхронизация.
Re: std::queue
От: sadomovalex Россия http://sadomovalex.blogspot.com
Дата: 12.10.04 06:26
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Является ли потоково безопасным сабж. Т.е. могут ли много потоков вставлять и удалять элементы из одного объекта-контейнера. Есть ли там критические секции и их локи/анлоки. Спасибо!!!


Насколько мне известно, в реализациях stl-ных контейнеров не предусмотрено средств синхронизации потоков, т.к. это вещь платформо-зависимая. Синхронизацию нужно добавлять вручную
"Что не завершено, не сделано вовсе" Гаусс
Re[2]: std::queue
От: Павел Кузнецов  
Дата: 12.10.04 20:05
Оценка:
sadomovalex:

> Насколько мне известно, в реализациях stl-ных контейнеров не предусмотрено средств синхронизации потоков, т.к. это вещь платформо-зависимая.


Каждая реализация контейнеров стандартной библиотеки может быть платформенно-зависимой, так что добавить внутрь функций контейнера захват и освобождение мьютексов не проблема. Проблема в принципиальной невозможности обеспечить "потокобезопасность" контейнеров стандартной библиотеки без внешней синхронизации:
http://rsdn.ru/Forum/?mid=104051
Автор: Павел Кузнецов
Дата: 22.09.02

http://rsdn.ru/Forum/?mid=590383
Автор: Павел Кузнецов
Дата: 01.04.04
Posted via RSDN NNTP Server 1.9 gamma
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.