Gelen çoklu işlem size hesaplamalar dağıtmak için birden fazla CPU kaldıraç. CPU'ların her biri paralel çalıştığından, aynı anda birden fazla görevi etkili bir şekilde çalıştırabilirsiniz. CPU'ya bağlı görevler için çoklu işlemeyi kullanmak isteyebilirsiniz . Bir örnek, büyük bir listenin tüm öğelerinin toplamını hesaplamaya çalışıyor olabilir. Makinenizde 8 çekirdek varsa, listeyi daha küçük 8 listeye "bölebilir" ve bu listelerin her birinin toplamını ayrı çekirdekte ayrı ayrı hesaplayabilir ve ardından bu sayıları toplayabilirsiniz. Bunu yaparak ~ 8x hızlanma elde edeceksiniz.
(Çoklu) iş parçacığı içindebirden fazla CPU'ya ihtiyacınız yok. Web'e çok sayıda HTTP isteği gönderen bir program hayal edin. Tek iş parçacıklı bir program kullandıysanız, her istekte yürütmeyi (blok) durdurur, bir yanıt bekler ve bir yanıt alır almaz devam eder. Buradaki sorun, CPU'nuzun işi yapmasını bazı harici sunucuları beklerken gerçekten çalışmıyor olmasıdır; bu arada gerçekten bazı yararlı işler yapabilirdi! Düzeltme, iş parçacığı kullanmaktır - her biri web'den bazı içerik talep etmekten sorumlu olan birçoğunu oluşturabilirsiniz. İş parçacıklarıyla ilgili güzel olan şey, bir CPU üzerinde çalışsalar bile, CPU'nun zaman zaman bir iş parçacığının yürütülmesini "dondurması" ve diğerini yürütmeye atlamasıdır (buna bağlam değiştirme denir ve bu, deterministik olmayan aralıklar). - iplik kullanın.
asyncio , esasen CPU'nun değil, bir programcı (veya aslında uygulamanızın) olarak, bağlam anahtarının nerede ve ne zaman olacağına karar verirseniz, iş parçacığıdır . Python'da await
, eşliğinizin yürütülmesini askıya almak için bir anahtar sözcük kullanırsınız ( async
anahtar sözcük kullanılarak tanımlanır ).