CPython için güvenli paralel yürütme modeli önerildi
Öne çıkanlar
- PEP 805, paralel yürütmede nesnelerin varsayılan olarak paylaşılmasını kısıtlayan bir güvenlik modeli getiriyor.
- Nesnelere yerel, dondurulmuş, korumalı ve senkronize olmak üzere dört farklı paylaşılabilirlik durumu ekleniyor.
- Kademeli geçiş için geliştirilen ThreadGroup yapısı, iş parçacıklarını belirli gruplar içinde sıralı yürütebiliyor.
Python geliştiricileri Mark Shannon ve Daniele Parmeggiani, CPython çalışma zamanında veri yarışmalarını (race condition) önleyecek PEP 805 teklifini yayımladı. Standart geliştirme sürecine sunulan öneri, Python kodlarının paralel yürütülmesini varsayılan olarak güvenli hale getirmeyi ve nesnelerin iş parçacıkları arasında kontrolsüz paylaşılmasını engellemeyi hedefliyor.
Öneri kapsamında nesnelere çalışma zamanında denetlenen paylaşılabilirlik durumları ekleniyor. Bellekteki yapılar yerel, dondurulmuş (değişmez), korumalı veya senkronize olarak etiketleniyor; böylece bir iş parçacığının güvenli olmayan bir nesneye erişmesi durumunda sistem çalışma anında istisna fırlatıyor. Sistem, işlemler yerine nesne erişimini denetleyerek C++ ve Java benzeri modellerde görülen belirsiz davranışları ve yüksek başarım kayıplarını engellemeyi amaçlıyor.
Teklif ayrıca GIL bağımlılığını kademeli olarak azaltmak için ThreadGroup sınıfını getiriyor. Geliştiriciler, serbest iş parçacıklı (free-threading) CPython ile standart sürüm arasındaki bölünmeyi tek çatı altında toplamayı ve mevcut projeleri büyük kod kırılmaları olmadan paralel yapıya geçirmeyi planlıyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.