search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
283 gösterim
Selamlar,
Python ile multithread uygulama nasıl yazılıyor? Standard python kütüphanesi multithread destekliyor mu?

Hangi yöntemler mevcut?
Python kategorisinde 6.2k puan

1 cevap

0 oy
Python programlama dünyasının anladığı gibi bir thread mekanizmasına sahip değil. Uygulamayı hızlandırmak için thread kullanmak çok tavsiye edilen bir yaklaşım değil. Python Global Interpreter Lock (GIL) adında bir yapıya sahip. Bu yapı bir anda tek bir thread'ın çalışmasını garaktilemek üzere kurgulandırılmıştır. Çok hızlı şekilde yaptığı için yalancı bir multithread yapısı oluşturur ve paralel gibi görünür. Ama temelde CPU birim zamanda tek bir thread için kullanılır ve diğerleri için sıralama sağlanır. GIL çalışma zamanında thread için bazı ekstra yükler getirir. Bu da demek oluyor ki uygulamayı hızlandırmak için thread kullanımı pek de iyi bir çözüm değildir.

Yine de thread kullanmak için bazı sebepler var. Eğer verim temel soru değilse ve aynı anda birkaç işlem yapılacaksa o durumda kullanılabilir. Eğer uygulamanız başka bir işlem için beklemesi gerekiyorsa (disk işlemleri gibi) thread kullanmak mantıklıdır. Akılda kalması gereken thread kütüphanesi CPU üzerindeki çekirdekleri kullanmak için yol değildir. Multithread yapısı için işletim sistemine bu iş gönderilebilir (multiprocessing), başka uygulamalar sizin python kodunuzu çağırabilir (örn, spark, hadoop) ya da sizin python kodunu başka uygulamaları çağırabilir (uygulamanız C ile yazılmış bir fonksiyonu çağırabilir)

Python'un multithreadı desteklemediğini bilmenizde fayda vardır. Yazdıktan sonra bir sürü insan uygulamadaki darboğazları, performans problemlerini incelemeye çalışıp en son GIL yapısını öğreniyor, boşuna zaman kaybı.
6.2k puan

İlgili sorular

0 oy
1 cevap 215 gösterim
215 gösterim
Python kullanarak http sayfası nasıl çağırıp dönen değeri alabilirim?
10 Haziran 2020 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 1.9K gösterim
1.9K gösterim
Bir dosyanın ismini değiştirmek istiyorum. Hangi kodları kullanmam gerekir?
15 Nisan 2020 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 2.6K gösterim
2.6K gösterim
Bir klasör içindeki dosyaları listelemek veya bir klasör içindeki xls uzantılı dosyaları bulmak istiyorum. Bu işlem için nasıl bir kod parçası yazmam gerekir?
15 Nisan 2020 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 349 gösterim
349 gösterim
Python programlama dili ile neler yapılabilir? Her iş için python kullanılabilir mi?
25 Mart 2020 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 557 gösterim
557 gösterim
Python iki diziyi bir araya getirip tek dizi nasıl yapılır? Asıl istediğim iki diziyi birleştirik küçükten büyüğe doğru sıralamayı nasıl yaparım?
6 Haziran 2021 Python kategorisinde canonka 334 puan sordu