hata karşılaştım 'RuntimeError: yineleme sırasında Sözlük değişti boyut' .Ben bulundu Python 2.7başka bir iş parçacığı takılı olan bir iş parçacığı bir sözlüğe, yineleme sırasında Küresel Intrepreter Kilidi kullanarak, biz olabilir o Bir nesnenin mutithreaded durumda kilitlemek.GIL'i çok iş parçacıklı bir uygulamada sözlük için nasıl kullanabilirim?
In thread1:
dictDemo[callid]=val
in thread2:
for key in dictDemo:
if key in dictDemo:
dictDemo.pop(key,None)
hatası karşılaştı 'RuntimeError: Sözlük yineleme sırasında boyutunu değiştirdi'.? Aynı zamanda çalışır thread1 beri thread2 içinde ** Ben thread2 içinde dictDemo sözlüğünü kilitlemek için GIL nasıl kullanabilirim ** Ya GIL sadece iş parçacığı için kullanılabilir mi yoksa nesneyi bir kerede 2 iş parçacığı ile kısıtlamak için sözlüğü kilitlemek için bir yol var mı?
threading.Lock Nesnesini kullanabilirsiniz. – SolaWing