THT DUYURU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Python Threading Modülü / Arge Kulübü

Ceen - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
07/2017
Mesajlar:
219
Konular:
19
Teşekkür (Etti):
70
Teşekkür (Aldı):
75
Ticaret:
(0) %
19-06-2018 14:52
#1
Python Threading Modülü / Arge Kulübü
THREADİNG MODÜLÜ

Nasıl İndirilir?

Arkadaşlar ben python 2.7 de çalışıyorum. Ve python bu modülü kendi yapısında barındırmaktadır. Yani indirilecek bir şey yok .

Giriş

Python'da bir çok paralel işlem yapmayı sağlar. Thread'lar aynı işlem içerisinden,bir kaç daldan çalışırlar. Yani aynı hafızayı ve kaynağı kullanır. Birkaç farklı thread'lar aynı veri üzerinden çalışabilir.

Thread(iplik): En küçük yürütme birimidir. Her thread çalışabilmek için process 'e ihtiyaç duyar.

Process: İşletim sistemi üzerinde, bir programlama dili ile hazırlanmış ve hafızaya alınmış çalışan programa denir. Bu sayede aynı anda birden fazla işlem yapılabilir. Dilerseniz örnekle başlayalım.




Bu kodu çalıştırdığınız takdirde do re mi nota ları belli süre aralıklarında sonsuza kadar çıkacaktır. İlk önce sleep,thread fonksiyonlarını içe aktardım. Daha sonra repeat adlı bir fonksiyon tanımladım. Peki bu fonksiyon ne işe yarıyor? Şöyle söylim do,re,mi notalarını verdiğim süre içerisinde sonsuz bir şekilde tekrarlamasını sağlar. Daha sonra 3 adet Thread oluşturdum. Bunlarıda notalara atayıp hangi zaman aralığında tekrarlanacağını belirledim. En son ise notaları çalıştığı kısım. start() metodunu kullanmadan başlatırsanız başlamayacaktır. Başlaması için bu metoddan faydalanıyoruz. Threading modülü, threadler arası zamanlamayı ayarlamak için Lock() ve Event() sınıfları gibi temel yöntemlere sahiptir. Ama daha çok Queue(sıra) yöntemini kullanmayı tercih eder. Bu yöntem hem daha kolay hem de daha güvenilirdir. Bu sayede daha temiz ve anlaşılır bir şekilde çalışılmış olunur. Dilerseniz sonucumuza bakalım.



Gördüğünüz gibi belirlediğim 3 nota belirli zaman aralığında sonsuz bir şekilde döndürdü. Şimdi daha farklı bir şey deneyelim. Bir web sayfası okuyucusu yapalım. İlk threading modülünü kullanmadan yapacağım. Bunun için urllib ve time modülünden yararlanacağım.



Bu kodlamada belirlediğim siteleri ne kadar sürede okuyacağımı belirledim. Sonucumuza bakalım.



Evet arkadaşlar siteleri hangi sürede okuduğunı gösterdi. Şimdi Threading modülümüz ile bakalım.



Şimdi ilk olarak Queue modümüze bakalım. Bu modül elimizdeki işleri tutacak ve istendikçe iş verecek. Bunu must adında bir değişkene atadık. reading_site adlı bir fonksiyon oluşturduk. Ve argüman olarak bir Queue objesi aldı. Bu objeden iş almak için get () metodunu kullandık. Bu metot sıradaki işi döndürür. Daha sonra taske_done() metodu ile işin bittiğini Queuemodülüne haber veriyor. Daha sonra for döngüsü ile 5 adet thread oluşturduk. Argüman olarak da must objesini verdik. Bu sayede hepsini aynı iş topluluğundan iş alacak. Ayrıca threadlara daemon özelliği vererek Tue olarak ayarladık. Bu sayede threadlar sonlandığında programın kapanmasını sağlayacak. Bir for döngüsü ile daha elimizdeki siteleri must objesine atadık. Queue modülüne iş eklemek için put() metodunu kullandık. join() metodu ile elimizdeki işlerin sonlanmasını bekledik. Bu sayede Queue'ler ve threadlar ile çok temiz bir şekilde çalıştık. Ve birden fazla thread ile Queue modülünü aynı anda kullanabildik. Sonucumuza bakalım.

R3DBULL, BufGix, bozkurt0607 Teşekkür etti.
Spaax - ait Kullanıcı Resmi (Avatar)
Tamamen Forumdan Uzaklaştırıldı
Üyelik tarihi:
12/2017
Nereden:
Türkiye
Mesajlar:
1.534
Konular:
126
Teşekkür (Etti):
159
Teşekkür (Aldı):
171
Ticaret:
(0) %
19-06-2018 14:58
#2
Baya işe yarıyomuş bu
Ellerine Sağlık
R3DBULL - ait Kullanıcı Resmi (Avatar)
Tamamen Forumdan Uzaklaştırıldı
Üyelik tarihi:
04/2016
Mesajlar:
615
Konular:
57
Teşekkür (Etti):
228
Teşekkür (Aldı):
100
Ticaret:
(0) %
19-06-2018 15:14
#3
Devamının gelmesi dileğiyle...
Eline sağlık.
Ceen - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
07/2017
Mesajlar:
219
Konular:
19
Teşekkür (Etti):
70
Teşekkür (Aldı):
75
Ticaret:
(0) %
19-06-2018 17:58
#4
Teşekkürler.
bozkurt0607 - ait Kullanıcı Resmi (Avatar)
Tamamen Forumdan Uzaklaştırıldı
Üyelik tarihi:
07/2017
Nereden:
ANGARA
Yaş:
18
Mesajlar:
518
Konular:
63
Teşekkür (Etti):
386
Teşekkür (Aldı):
186
Ticaret:
(0) %
19-06-2018 20:11
#5
eline sağlık yararlı
Ceen - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
07/2017
Mesajlar:
219
Konular:
19
Teşekkür (Etti):
70
Teşekkür (Aldı):
75
Ticaret:
(0) %
19-06-2018 20:15
#6
Alıntı:
bozkurt0607´isimli üyeden Alıntı Mesajı göster
eline sağlık yararlı
Saolun hocam.
YTSKN - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
06/2017
Nereden:
UnderGround
Mesajlar:
940
Konular:
65
Teşekkür (Etti):
208
Teşekkür (Aldı):
276
Ticaret:
(0) %
19-06-2018 20:17
#7
devamının gelmesi dileğiyle
Yararlı ellerine sağlık
Ceen - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
07/2017
Mesajlar:
219
Konular:
19
Teşekkür (Etti):
70
Teşekkür (Aldı):
75
Ticaret:
(0) %
19-06-2018 20:19
#8
Alıntı:
YTSKN´isimli üyeden Alıntı Mesajı göster
devamının gelmesi dileğiyle
Yararlı ellerine sağlık
Saolun teşekkürler.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler