Есть некий контейнер в который сохраняются объекты по id, предположим {}
t={}
Есть 50 потоков (Threads) которые читают, не важно, одинаковые или разные id.
Есть 5 конкурирующих потоков с локом которые пишут новые id в контейнер.
t ['ABC' ]={'test_value1':1,'test_value2':2}
Безопасно ли остальным 50 потокам выполнять во время лока чтение? Я так полагаю что нет.
Как в таком случае быть? Вариант принудительным ожиданием и проверкой лока ( if not lock.locked() ) в каждом из потоков попахивает костылем.
Пишу на 2.7, фреймворк Tornado