I-Multiprocessing yindlela ethandwayo kwiprogram yePython evumela ukuba uqhube iinkqubo ezininzi ngaxeshanye, zihlala zikhokelela kuphuculo lokusebenza kunye nokusetyenziswa ngokufanelekileyo kwezixhobo zenkqubo. Eli nqaku lintywila kusetyenziso lwe ukwenza izinto ezininzi ilayibrari kwiPython, igxile ngokukodwa kwi imephu umsebenzi. Umsebenzi wemephu ukuvumela ukuba ufake umsebenzi kwinto nganye enokuphinda iphindwe, njengoluhlu, kwaye ubuyisele uluhlu olutsha kunye neziphumo. Ngokusebenzisa i-multiprocessing, sinokuyingqamanisa le nkqubo ukwenzela ukusebenza kakuhle kunye nokulinganisa.
Kweli nqaku, siza kuphonononga ingxaki apho i-multiprocessing kunye nomsebenzi wemephu ingaba sisisombululo esihle kakhulu, sixoxe ngamathala eencwadi afanelekileyo kunye nemisebenzi, sinikeze inkcazo yesinyathelo-nge-nyathelo yekhowudi, kwaye sihlolisise kwizihloko ezinxulumeneyo ezakha kwi-backbone. ye-multiprocessing kunye nomsebenzi wemephu.
Multiprocessing Imephu: Ingxaki kunye nesisombululo
Ingxaki esijonge ukuyisombulula kukuphucula ukusebenza kunye nokusebenza kakuhle kokusebenzisa umsebenzi kwinto nganye kwi-iterable enkulu, njengoluhlu, i-tuple, okanye nayiphi na enye into exhasa ukuphindaphinda. Xa ujongene nemisebenzi enjalo, ukusebenzisa imephu eyakhelwe-ngaphakathi umsebenzi okanye uluhlu lokuqonda kunokucotha kwaye kungasebenzi kakuhle.
Isisombululo kukusebenzisa ithala leencwadi le-multiprocessing ePython, ngokukodwa, i ichibi iklasi kunye nayo imephu indlela. Ngokusebenzisa i I-Pool.map () umsebenzi wokuphindaphinda, singakwazi ukusasaza ukuphunyezwa komsebenzi wethu kwiinkqubo ezininzi.
INyathelo neNyathelo Inkcazo yeKhowudi
Masicazulule ikhowudi kwaye sibonise indlela yokusebenzisa umsebenzi wemephu wokuphindaphinda ngokufanelekileyo:
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)
- Okokuqala, ngenisa ngaphandle i ukwenza izinto ezininzi imodyuli, equlathe izixhobo eziyimfuneko zokusebenzisa uqwalaselo oluhambelanayo kwiPython.
- Yenza umsebenzi obizwa ngokuba sikwere leyo ilala nje isiqingatha somzuzwana kwaye emva koko ibuyisele isikwere sengxabano yegalelo layo. Lo msebenzi ulinganisa ubalo oluthatha ixesha elifanelekileyo ukugqiba.
- Yenza uluhlu olubizwa amanani, equlethe amanani apheleleyo ukusuka ku-0 ukuya ku-9 (ibandakanyiwe).
- Qalisa a ichibi into esuka kwimodyuli yosetyenziso oluninzi. Injongo ye-Pool isebenza njengendlela yokulawula iinkqubo zabasebenzi oya kuzisebenzisa ukufanisa imisebenzi yakho.
- Tsalela umnxeba imephu indlela kwi pool into, kwaye udlule kwi sikwere function kunye amanani uluhlu. Indlela yemephu isebenzisa umsebenzi wesikwere kwinto nganye ekuluhlu lwamanani ngaxeshanye, kusetyenziswa iinkqubo ezikhoyo zabasebenzi equleni.
- Shicilela uluhlu olunesiphumo lwamanani aphindwe kabini, ekufuneka luqulathe amaxabiso aphindwe kabini kuluhlu lwamanani.
IPython Multiprocessing Library
IPython ukwenza izinto ezininzi ilayibrari ibonelela ngeendlela ezicacileyo zokuphumeza ukuhambelana kwinkqubo yakho. Ifihla ubunzima obuthile obunxulunyaniswa nenkqubo ehambelanayo ngokunikezela ngezithintelo ezikwinqanaba eliphezulu njenge ichibi. Udidi lwe-Pool lwenza lula ukuhanjiswa komsebenzi kwiinkqubo ezininzi, okwenza ukuba umsebenzisi abe namava okuxhamla ukusetyenzwa okuhambelanayo kunye nobunzima obuncinci.
Imodyuli yePython Itertools kunye neMisebenzi eNxulumeneyo
Ngelixa ukwenza izinto ezininzi kusisisombululo esibalaseleyo kwimisebenzi emininzi ehambelanayo, kufanelekile ukukhankanya ukuba iPython ikwabonelela ngamanye amathala eencwadi kunye nezixhobo ezihlangabezana neemfuno ezifanayo. Imodyuli ye-itertools, umzekelo, ibonelela ngobutyebi bemisebenzi esebenza kwii-iterables, rhoqo ngokuphucula ukusebenza kakuhle. Ezinye iitertools zisebenza njenge imap() kwaye imap_engacwangciswanga () ingangqamanisa inkqubo yokufaka umsebenzi kwi iterable. Nangona kunjalo, kubalulekile ukuqaphela ukuba i-itertools ijolise ikakhulu kwizisombululo ezisekelwe kwi-iterator, ngelixa ithala leencwadi le-multiprocessing libonelela ngendlela ebanzi ngakumbi yokuhambelana, ukubonelela ngezixhobo ezongezelelweyo kunye nobuchule obungaphaya kwemisebenzi efana nemephu.