Kuxazululiwe: imephu yokucubungula okuningi

I-Multiprocessing iyindlela edumile kuhlelo lwePython ekuvumela ukuthi usebenzise izinqubo eziningi ngesikhathi esisodwa, okuvamise ukuphumela ekuthuthukisweni kokusebenza nokusetshenziswa kahle kwezinsiza zohlelo. Lesi sihloko sigxila ekusetshenzisweni kwe- ukucubungula okuningi umtapo wezincwadi kuPython, ugxile kakhulu ku imephu umsebenzi. Umsebenzi wemephu ukuvumela ukuthi usebenzise umsebenzi entweni ngayinye ephindaphindekayo, njengohlu, bese ubuyisela uhlu olusha nemiphumela. Ngokusebenzisa amandla kaningi, singakwazi ukufanisa le nqubo ukuze sisebenze kahle kakhulu futhi sikwazi ukukala.

Kulesi sihloko, sizohlola inkinga lapho ukucubungula okuningi ngomsebenzi wemephu kungaba yisixazululo esihle kakhulu, sixoxe ngemitapo yolwazi efanelekile kanye nemisebenzi, sinikeze incazelo yesinyathelo nesinyathelo sekhodi, futhi sihlole izihloko ezihlobene ezakha phezu komgogodla. yokucubungula okuningi kanye nomsebenzi wemephu.

Imephu Yokucubungula Okuningi: Inkinga Nesixazululo

Inkinga esihlose ukuyixazulula ukuthuthukisa ukusebenza nokusebenza kahle kokusebenzisa umsebenzi entweni ngayinye endaweni enkulu ephindaphindekayo, njengohlu, i-tuple, nanoma iyiphi enye into esekela ukuphindaphinda. Uma ubhekene nemisebenzi enjalo, ukusebenzisa umsebenzi wemephu eyakhelwe ngaphakathi noma ukuqonda kohlu kungase kuhambe kancane futhi kungasebenzi kahle.

Isixazululo ukusebenzisa umtapo wezincwadi owenziwe ngezinto eziningi e-Python, ikakhulukazi, i ichibi class kanye layo imephu indlela. Ngokusebenzisa i- i-multiprocessing Pool.map() umsebenzi, singasabalalisa ukwenziwa komsebenzi wethu kuzo zonke izinqubo eziningi.

Incazelo Yesinyathelo Nesinyathelo Yekhodi

Ake sihlukanise ikhodi futhi sibonise indlela yokusebenzisa umsebenzi wemephu wokucubungula okuningi ngempumelelo:

import multiprocessing
import time

def square(n):
    time.sleep(0.5)
    return n * n

# Create the list of numbers
numbers = list(range(10))

# Initialize the multiprocessing Pool
pool = multiprocessing.Pool()

# Use the map function with multiple processes
squared_numbers = pool.map(square, numbers)

print(squared_numbers)
  1. Okokuqala, ngenisa i ukucubungula okuningi module, equkethe amathuluzi adingekayo ukuze kusetshenziswe ukucubungula okufanayo kuPython.
  2. Dala umsebenzi obizwa ngokuthi isikwele lokho kuvele kulale isigamu sesekhondi bese kubuyisela isikwele se-agumenti yakho yokufaka. Lo msebenzi ulingisa isibalo esithatha isikhathi esiphusile ukusiqeda.
  3. Khiqiza uhlu olubizwa izinombolo, equkethe izinombolo ezisuka ku-0 kuye ku-9 (zihlanganisiwe).
  4. Qalisa i- ichibi into evela kumojula yokucubungula okuningi. Into ye-Pool isebenza njengendlela yokuphatha izinqubo zabasebenzi ozozisebenzisa ukufanisa imisebenzi yakho.
  5. Shayela i- imephu indlela entweni yechibi, bese udlula ku isikwele function kanye ne izinombolo uhlu. Indlela yemephu ibe isisebenzisa umsebenzi wesikwele entweni ngayinye esohlwini lwezinombolo kanyekanye, kusetshenziswa izinqubo zesisebenzi ezitholakalayo echibini.
  6. Phrinta uhlu oluwumphumela lwezinombolo_eziyisikwele, okufanele luqukathe amanani ayisikwele ohlwini lwezinombolo.

I-Python Multiprocessing Library

I-Python ukucubungula okuningi umtapo wolwazi uhlinzeka ngezindlela ezinembile zokuqalisa ukufana kuhlelo lwakho. Ifihla ubunkimbinkimbi obuvame ukuhlotshaniswa nezinhlelo ezifanayo ngokunikeza izifinyezo ezisezingeni eliphezulu njenge ichibi. Isigaba se-Pool senza kube lula ukusatshalaliswa komsebenzi kuzo zonke izinqubo eziningi, okuvumela umsebenzisi ukuthi azizwele izinzuzo zokucubungula okufanayo ngobunzima obuncane.

I-Python Itertools Module kanye Nemisebenzi Ehlobene

Ngenkathi ukucubungula okuningi kuyisixazululo esihle kakhulu semisebenzi eminingi efanayo, kufanelekile ukusho ukuthi iPython iphinde inikeze eminye imitapo yolwazi namathuluzi ahlangabezana nezidingo ezifanayo. Imojula ye-itertools, ngokwesibonelo, inikeza ingcebo yemisebenzi esebenza kuma-iterable, ngokuvamile ngokusebenza okuthuthukisiwe. Amanye ama-itertools asebenza njenge imap() futhi imap_unordered() ingafanisa inqubo yokusebenzisa umsebenzi kokuphindaphindekayo. Kodwa-ke, kubalulekile ukuqaphela ukuthi i-itertools igxile kakhulu kuzixazululo ezisekelwe ku-iterator, kuyilapho umtapo wolwazi wokucubungula okuningi unikeza indlela ebanzi yokuhambisana, ehlinzeka ngamathuluzi engeziwe namandla angaphezu kwemisebenzi efana nemephu.

Okuthunyelwe okuhlobene:

Shiya amazwana