İki çok daha karmaşık Python betiği kullanan basit bir Python betiğine sahibim ve sonuçlarla bir şeyler yapıyor.Python'da çok basit eşzamanlı programlama
İki modül, Foo ve Bar, ve benim kod gibidir aşağıdadır:
import Foo
import Bar
output = []
a = Foo.get_something()
b = Bar.get_something_else()
output.append(a)
output.append(b)
Her iki yöntem çalışması uzun zaman alır ve ne diğer bağlıdır, bu yüzden bariz çözüm için Paralel olarak çalıştırın. Bunu nasıl sağlayabilirim, ancak siparişin devam ettiğinden emin olun: İlk önce hangisi bitiyorsa, komut dosyasının devam edebilmesi için diğerinin bitmesini beklemelisiniz. Kendimi yeterince açıklamamış olsaydım, örnek kodu mümkün olduğunca basitleştirmeye çalıştım.
DÜZENLEME:
Teşekkür Amber, çözüm tek ufak bir değişiklik ile çalışır. Ben eşzamanlılık hatayı AttributeError: 'NoneType' object has no attribute 'join'
ve bazı çok garip davranış başlamıştı Bu olmadan
threadname = threading.Thread(target=foo)
threadname.start()
: Bunun yerine oluşturulduğunda her iş parçacığı üzerinde start() çağıran
, çok gibi onları kurmak . Cevabınızı aşağıda düzenlerseniz, bunu çözülmüş olarak işaretlerim.
İş parçacığı, boşta olan kod için kullanışlıdır. Çok fazla ağır bir hesaplamaya sahipse, çok işlem yapılmasını tavsiye etmelisiniz çünkü iş parçacığı yalnızca bu durumda gecikme ekleyecektir. – akaRem
@akaRem Elbette, bununla ilgili bir notta düzenleme yapabilirim. – Amber
Evet, çok yoğun bir işlemci. İlk önce bu çalışmayı alacağım; Hızlı bir görünüm aldım ve API'ler aynı. – Rory