SORU
19 EYLÜL 2008, Cuma


Nedir &; Python iş parçacığı yerel depolama"", ve neden ihtiyacım var?

Python özellikle, nasıl değişkenler iş parçacıkları arasında paylaşılan alabilirim?

Önce threading.Thread kullanmış olmama rağmen, hiç veya bir paylaşılan değişkenler nasıl anlaşılır örnekler gördüm. Çocuklar arasında ana iş parçacığı ve çocuklar arasında ya da sadece paylaşılır? Ne zaman bir iş parçacığı yerel depolama bu paylaşımı önlemek için kullanmak gerekir?

Kilitler kullanarak iş parçacığı arasında paylaşılan verilere erişim eşitleme hakkında birçok uyarılar gördüm ama henüz sorunun gerçekten iyi bir örnek görmem lazım.

Şimdiden teşekkürler!

CEVAP
19 EYLÜL 2008, Cuma


Python ile her şey, işlevi yerel değişkenler (her bir işlev çağrısı yerliler kendi kümesini alır, çünkü, ve ipler her zaman ayrı işlev çağrıları vardır.) dışında paylaşılan Ve o zaman bile, sadece kendilerini değişkenler (nesneler için başvuran isimleri) işlevi için yerel; nesnelerin kendilerini her zaman geneldir ve onlara bir şey ifade edebilir. Belirli bir iş parçacığı için Thread nesne bu konuda özel bir nesne değildir. Thread nesne bir yerde saklarsanız bütün konuları bütün tartışmaları Thread bir nesne erişebilir sonra (global değişken) erişebilirsiniz. Eğer isterseniz atomik değiştirinhiçbir şeysadece aynı bu konuyu sen yaratmadın, ve iplik de olabilir başka bir yerde depolamak değil, bir kilit ile onu korumalısın. Ve tüm konuları tabii ki bu çok aynı kilit paylaşmak gerekir, ya da çok etkili olmaz.

Eğer gerçek bir iş parçacığı yerel depolama istiyorsanız, o threading.local burada devreye giriyor. threading.local öznitelikleri konuları arasında paylaşılır; her iş parçacığı kendisi orada yer öznitelikleri görür. Eğer uygulaması hakkında merak ediyorsanız, kaynak standart kütüphanede _threading_local.py.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amir Parmar

    Amir Parmar

    25 Kasım 2010
  • How To Cook That

    How To Cook

    16 NİSAN 2011
  • Rickymon Tero

    Rickymon Ter

    1 Ocak 2007