Писатели, очередь и UB
От: gamial Россия  
Дата: 19.09.06 11:51
Оценка:
Есть несколько писателей и очередь (std::queue). В каком порядке лягут переменные в очередь — значения не имеет. Однако может ли воникнуть UB если в один момент времени два потока одновременно что-то положат?
Re: Писатели, очередь и UB
От: Smal Россия  
Дата: 19.09.06 12:13
Оценка:
Здравствуйте, gamial, Вы писали:

G>Есть несколько писателей и очередь (std::queue). В каком порядке лягут переменные в очередь — значения не имеет. Однако может ли воникнуть UB если в один момент времени два потока одновременно что-то положат?

В стандарте, вообще, потоки не упоминаются. Так что, все зависит от конкретной реализации (и настройки) библиотеки.
С уважением, Александр
Re: Писатели, очередь и UB
От: Константин Л. Франция  
Дата: 19.09.06 13:39
Оценка:
Здравствуйте, gamial, Вы писали:

G>Есть несколько писателей и очередь (std::queue). В каком порядке лягут переменные в очередь — значения не имеет. Однако может ли воникнуть UB если в один момент времени два потока одновременно что-то положат?


путсь и не по стандарту ANSI/ISO c++, но UB будет
Re: Писатели, очередь и UB
От: bkat  
Дата: 19.09.06 16:20
Оценка:
Здравствуйте, gamial, Вы писали:

G>Есть несколько писателей и очередь (std::queue). В каком порядке лягут переменные в очередь — значения не имеет. Однако может ли воникнуть UB если в один момент времени два потока одновременно что-то положат?


Будет банальный race condition, причем гарантированно.
Доступ к STL'ным контейнерам из нескольких потоков надо обязательно синхронизировать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.