Python’da Thread — İş Parçacığı

A.Oğuzhan Durmaz
Data Runner
Published in
2 min readMay 25, 2020

Bu yazımızda Thread nedir ve Python’da Thread nasıl kullanılır öğreneceğiz. Hadi başlayalım.

Thread — İş Parçacığı

Bir işin eş zamanlı olarak işlenen her bir bölümüdür.¹

Yazdığımız kodların sırayla satır satır işleme alındığı bölüm diyebiliriz. Thread içindeki kodlar sırayla işleme girerler, bir önceki kod satırı çalıştırılmadan bir sonraki çalıştırılmaz. Satırlar birbirlerini beklerler.

Main Thread — Ana iş parçacığı ise programımızın başlangıç noktasıdır. Yazdığımız kodları varsayılan olarak çalıştırdığımız iş parçacığıdır.

Multi Thread — Çoklu İş Parçacığı

Birden fazla iş parçacığının bulunduğu senaryodur. Çalışacak olan bir kod bloğunun yanında aynı anda ona paralel olarak çalışmasını istediğimiz kod blokları olabilir.

Diyelim ki Main Thread’de programımız bir iş yapıyor fakat diğer taraftan da ağ üzerinden bilgi alması gerekiyor. Böyle bir durumda bize Multi Thread eşlik ediyor. Multi Thread ile Main Thread’i engellemeden paralel olarak iş yapabiliriz.

Python’da bu işlem nasıl yapılıyor bir bakalım.

Python’da Multi Thread

Öncelikle kütüphanemizi yükleyelim.

İki tane 0'dan 5'e kadar ekrana sayı yazan fonksiyonumuz olsun.

Bu iki fonksiyonun birini Thread ile diğerini de normal bir şekilde(Main Thread) çağıralım.

Burada Thread içinde target = ile çalıştıracağımız fonksiyonu seçiyoruz ve start() diyerek fonksiyonumuzu çalıştırıyoruz.

Çıktımız:

0 
Thread ile Çağrıldı: 0
Thread ile Çağrıldı: 1
Thread ile Çağrıldı: 2
1
Thread ile Çağrıldı: 3
Thread ile Çağrıldı: 4
2
3
4

Görüldüğü gibi normal fonksiyonumuz 3 saniye bekleyerek ekrana yazarken Thread ile çağırdığımız fonksiyonumuz da onunla paralel işlem yaparak, onu engellemeden 1 saniye bekleyerek ekrana yazıyor.

Peki ben Thread ile çalıştıracağım fonksiyonuma argüman göndermek istiyorum bunu nasıl yapıyoruz?

Bu sefer fonksiyonumun bir tane parametresi olsun.

Bu durumda fonksiyonumuzu çağırırken args= ile argüman gönderebiliyoruz.

Peki Thread nesnemizi bir daha kullanmak istersek

RuntimeError: threads can only be started once

Hatasını alıyoruz. Tekrar çağırmak için Thread nesnemizi tekrar tanımlamamız gerekiyor.

Böylece Python’da Thread’e bir göz atmış olduk. Daha çok bilgi için Python dokümanına göz atabilirsiniz.

Faydalı olması dileğiyle. Başarılar.

Kaynakça:

¹https://en.wikipedia.org/wiki/Thread_(computing)

https://docs.python.org/3/library/threading.html

--

--