Python Threading Modülü 3 / Ar-Ge Kulübü

Ceen

Üye
29 Tem 2017
219
0
Threading Modülü


Threading'i dilerseniz ne olduğunu tekrardan söylim. Pythonda bir çok paralel işlem yapmayı sağlar. Thread'lar aynı işlem içeresinden,bir kaç daldan çalışırlar. Yani aynı hafıza ve kaynağı kullanırlar. Birden fazla thread aynı veri üzerinden çalışabilir.

Dilerseniz python'da import ederek çalıştığımız ortama aktaralım.

TLUCFC.png


Bir class oluşturalım. Oluşturduğumuz bu classta bir iş parçacığı oluşturmak için Thread objesinden faydalanıcağım.

I4PF8G.png


Gördüğünüz üzere çok basit bir kodlama ile bir class oluştuduk. Bu class'ımızı biraz da süsleyip işlevsel hale getirelim. Ne yapabiliriz mesela? Mesela öncelikli olarak bir run adında bir fonksiyon olıuşturup nasıl bir iş yapılmasını istiyorsak bu fonksiyona atayabiliriz. Daha sonra time modülünü çağırıp sleep objesi sayesinde iş parçacıkların düzenli bir zaman içerisinde çalışmasını sağlayabiliriz. Eğer sleep objemizi kullanmadan yaparsak ne olur? Arkadaşlar çıktılarımız düzensiz ve çok hızlı bir şekilde, rastgele süre içerisinde çalışır. Ama sleep objesi sayesinde biz zamanlama ayarı yaparak çıktılarımızı daha olumlu bir şekilde alabiliriz.

xe4LMb.png


Zamanlamamızı belirledik. Random modülü ile 5 tane iş parçacığı ve bunlar için geçen saniye ve değerlerini alacağız. Şimdi dilerseniz artık iş parçacığımızı oluşturalım. Bunlar için oluşturduğumuz isparcacigi adlı class' ımız ve işlemleri çalıştırmak için start() objesinden faydalanacağız.

9rpQWG.png


Son olarak join() objemiz ile iş parçacıklarımızın işlemlerini tamamlandıktan sonra sona ermesini sağlıyacağız. Aksi hale iş parçacıkları işlemlerini tamamlanmadan sona erebilir.

dMTN7c.png


Şimdi programımızın son haline bir bakalım.

XndIXt.png


Bir de çalıştıralım.

sBFlTC.png
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.