Потоки Python и GIL

Я читал о GIL, но он никогда не уточнял, включает ли он основной поток или нет (я так полагаю). Причина, по которой я спрашиваю, заключается в том, что у меня есть программа с настройкой потоков, которая изменяет словарь. Основной поток добавляет / удаляет на основе ввода игрока, в то время как поток циклически обновляет и изменяет данные.

Однако в некоторых случаях поток может перебирать ключи словаря, где их можно удалить. Если есть так называемый GIL и они выполняются последовательно, почему я получаю ошибки изменения диктовки? Если предполагается, что одновременно будет работать только один, то технически этого не должно происходить.

Может ли кто-нибудь пролить свет на такую ​​вещь? Спасибо.

6
задан Charles 20 January 2011 в 15:11
поделиться