потокобезопасность константного эталонного значения в циклическом цикле for в многопоточной среде - PullRequest
0 голосов
/ 23 марта 2019

Предположим, у меня есть следующий фрагмент кода C ++:

    threadpool thread_pool;
    map<Key, Value> map;
    for (const std::pair<Key, Value> & element : map) {
       thread_pool.Add([](const Value& value) {
       } (element); 
    }
    thread_pool.Join();

Потокобезопасно ли проходить по «константной ссылке», когда функция использует временное значение «элемент» из цикла на основе диапазона? Другими словами, будет ли детерминировано, что первому потоку назначается первая возвращенная пара kv из карты, второму потоку назначается вторая пара kv из карты и т. Д.?

Если это не потокобезопасно, а копировать значение очень дорого, что является хорошей практикой для решения этого типа проблемы? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...