Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 6, 2015 18:48:23

undiabler
Зарегистрирован: 2015-04-06
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Потокобезопасность при чтении

Доброго времени суток.
Есть некий контейнер в который сохраняются объекты по id, предположим {}

t={}

Есть 50 потоков (Threads) которые читают, не важно, одинаковые или разные id.
Есть 5 конкурирующих потоков с локом которые пишут новые id в контейнер.

t ['ABC' ]={'test_value1':1,'test_value2':2}

Безопасно ли остальным 50 потокам выполнять во время лока чтение? Я так полагаю что нет.
Как в таком случае быть? Вариант принудительным ожиданием и проверкой лока ( if not lock.locked() ) в каждом из потоков попахивает костылем.

Пишу на 2.7, фреймворк Tornado

Отредактировано undiabler (Апрель 6, 2015 18:50:01)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version