2010-07-23 14 views
7

Başlıca sorum, Threading kilit nesnesini atomik kilitler oluşturuyor mu? Kilidin modül belgelerinde atomik olduğunu söylemez. pythons mutex belgelerinde, mutex kilidinin atomik olduğunu söyler ama aslında olmadığı bir yerde okudum gibi görünür. Birisi bana bu konu hakkında biraz bilgi verebilir mi diye merak ediyorum. Hangi kilidi kullanmalıyım? Şu anda benim scriptlerimi kullanarak çalıştırıyorum python 2.4Mutex kilitler vs Diş açma kilitleri. Kullanılacak?

cevap

13

Atomik olmasalar da herhangi bir tabiatın kilitleri oldukça yararsız olurdu - kilidin bütün noktası daha yüksek seviyeli atomik işlemlere izin vermektir.

İş parçacığının tüm eşitleme nesneleri (kilitler, perdeler, semaforlar, sınırlayıcılar), muteks gibi atomik yönergeleri kullanır. mutex beri

Sen gerektiği kullanım threading, aslında ileriye kaldırılmış (ve Python 3'te kaldırıldı) olduğunu.

+0

Teşekkürler, sadece kontrol etmek istedim. – Richard

+1

Ve 'mutex' modülünü kullanmamak için daha büyük bir neden: kilitleri iş parçacığıdır. Tek programlı programlarda 'sched' modülünü kullanarak kullanılırlar. Esasen, işe yaramazlar. –

+0

@Thomas Wouters, bu yüzden mutex modülünü python 3'te tutmuyorlar. – Richard

İlgili konular