LINUX.ORG.RU

Доступ к std::list из разных потоков


0

1

Как следует обращаться с std::list из разных потоков?

Вот например ситуация. В одном потоке начинается перебор элементов итератором, в середине списка выполнение останавливается (например из-за блокировки мьютексом). Следом в другом потоке происходит добавление элемента к этому списку. После этого не нарушится ли продолжение перебора в первом потоке тем же итератором?

★★★
Ответ на: комментарий от anonymous

Но мы рискуем прочитать не все данные. Это, скорее всего, будет плохо.
Но если вопрос ТСа понимать как «не случится ли сегфолт», то согласен.

Stahl ★★☆
()
Ответ на: комментарий от Stahl

Но мы рискуем прочитать не все данные. Это, скорее всего, будет плохо.

Ну, костылями и подпорками это можно обойти, но твой первый ответ лучше

Stil ★★★★★
()
Ответ на: комментарий от Stahl

Но мы рискуем прочитать не все данные.

Что значит «не все» в случае, когда что-то постоянно добавляется-удаляется?
Если ставится требование сохранить конкретное состояние списка - то это уже отдельная задача и решать её можно тоже разными методами.

invy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.