CodeBlanks Logo Icon CodeBlanks

Pool

multiprocessing.Pool ile süreç havuzunu öğrenirsin.

multiprocessing.Pool nedir?

multiprocessing.Pool bir süreç havuzudur. Birden çok görevi otomatik olarak süreçlere dağıtır; .map() ile bir fonksiyonu bir listenin tüm öğelerine uygular.

Örneğin Pool().map(func, [1, 2, 3]) üç öğeyi havuzdaki sürelere dağıtır ve [func(1), func(2), func(3)] sonucunu döndürür. with Pool() as p: bloğu havuzu otomatik kapatır. map giriş sırasını korur; bu yüzden çıktı deterministiktir. Bu, paralel haritalama için en pratik yoldur.

map ile paralel hesaplama

Pool().map(func, data) fonksiyonu data'nın her öğesine uygular. Süreç sayısı otomatik seçilir; genellikle CPU çekirdek sayısına eşittir.

Önemli: map giriş sırasını korur. [1, 2, 3] girişi [func(1), func(2), func(3)] çıktısı verir; hangi süreç önce bitirse bitsin sıra aynı kalır. Bu, deterministik sonuçlar sağlar. with bloğu kullanmadıysan p.close() ve p.join() ile havuzu kapatman gerekir.

Uygulama Pool ile kare hesapla

from multiprocessing import Pool ile içe aktar. square fonksiyonu tanımla; x * x döndürsün. with Pool() as p: bloğu içinde p.map(square, [1, 2, 3]) çağrısını result'a ata. result'u yazdır.

Başlangıç kodu

main.py
# kare fonksiyonu yaz
# Pool ile paralel hesapla
# sonucu yazdır

Örnek çözüm

main.py
from multiprocessing import Pool

def square(x):
    return x * x

with Pool() as p:
    result = p.map(square, [1, 2, 3])
print(result)

Beklenen çıktı

[1, 4, 9]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Pool().map ne döndürür?

main.py
with Pool() as p:
    result = p.map(func, [1, 2, 3])
  • Sonuçların listesi Doğru cevap
  • Bir kuyruk
  • Bir süreç nesnesi
  • Tek bir değer

Açıklama: sonuçların listesi. map, her öğenin sonucunu sırayla listeler.

2 Pool kavramlarını eşleştir

Kavram Anlamı
Pool Süreç havuzu
map Paralel uygular
with Pool() Otomatik kapatır
func Uygulanan fonksiyon

3 Pool map çağrısını tamamla

Soru
with Pool() as p:
    result = p.____(square, [1, 2, 3])
Cevap
with Pool() as p:
    result = p.map(square, [1, 2, 3])

Açıklama: p.map(func, data) fonksiyonu paralel uygular.

Uzman bölümündeki tüm dersler