Я столкнулся с ошибкой 'RuntimeError: словарь изменил размер во время итерации' при итерации по словарю в потоке, который вставляется в другой поток в Python 2.7. Я обнаружил, что с помощью Global Intrepreter Lock мы можем заблокировать объект в многопоточной ситуации.
In thread1:
dictDemo[callid]=val
in thread2:
for key in dictDemo:
if key in dictDemo:
dictDemo.pop(key,None)
Я столкнулся с ошибкой 'RuntimeError: словарь изменил размер во время итерации' в потоке 2, так как поток 1 работает в то же время. ** Как я могу использовать GIL для блокировки словаря dictDemo в потоке 2? ** Или GIL может использоваться только для потоков? Или есть способ заблокировать словарь, чтобы ограничить использование объекта двумя потоками одновременно?