Чтение потоков вызовов at(i)
функция и запись вызовов потоков push_back()
функция, я получаю ошибку «вне диапазона», почему?Один поток, прочитанный и один поток, пишет std :: deque safe?
0
A
ответ
3
Вызов любой функции не-const-члена на любом стандартном объекте библиотеки не является потокобезопасным (если только некорректная функция не документирована иначе). Вам необходимо синхронизировать доступ к объекту, чтобы предотвратить скачки данных и, следовательно, неопределенное поведение.
+1
Использование функции «at» для deque также довольно неэффективно. –
Смежные вопросы
- 1. Поток пишет и читает?
- 2. Один поток, записывающий в очередь, один поток, читающий
- 3. Один поток производителей, несколько потребителей
- 4. Java параллельный поток, используя только один поток?
- 5. Один SQLiteConnection на поток?
- 6. Один поток, заканчивающий процесс
- 7. Только один поток за один раз C#
- 8. C++ std :: map - потокобезопасный, если один поток пишет, а другой читает всегда с разными клавишами?
- 9. Как я могу использовать один поток, и у меня есть еще один поток и завершение работы?
- 10. Один поток зависит от другого
- 11. MSTest: Один поток за раз
- 12. Проснувшись один поток от другого
- 13. Netty: один поток за запрос
- 14. Bro: Записывать только один поток
- 15. C# Только один поток Выполняется
- 16. OpenMP создает только один поток
- 17. Один асинхронный поток на задание?
- 18. Android таймер только один поток
- 19. Mule один поток за время
- 20. pthread_cond_signal() выпускает ровно один поток?
- 21. ResXResourceWriter не пишет в поток?
- 22. Google+ поток пишет, используя C# и Oauth
- 23. Один экземпляр класса в поток, C++ 11
- 24. Параллельный поток создает только один поток и дает результат так же быстро, как обычный поток.
- 25. Как объединить аудио-поток и поток видео в один переизданный сетевой поток с помощью flex3?
- 26. только один поток выполняет ядро cuda
- 27. std :: thread когда выполняется поток?
- 28. AsynchTask: за один поток может создаваться только один Looper.
- 29. Когда один рабочий поток терпит неудачу, как отменить оставшихся работников?
- 30. Состояние гонки в C++ задача поток с deque
Я думаю, что переменная 'size()' остается в регистре каждого ядра? используя «volatile», можно ли решить проблему для определенной ситуации, что «один читал одну запись»? – egraldlo
Нет, это все еще UB. –
напишите самостоятельную очередь, определите функцию 'size()', используя подсчет переменной volatile. – egraldlo