Python - asinhronie procesi

Satura rādītājs
Līdz brīdim, kad mēs nonākam daudzkārtējas apstrādes, serveru un dažādu pieprasījumu pasaulē, mums jāzina, ka pastāv dažāda veida atbildes vai uzvedība, sinhroni un asinhrona.
Pirmais sastāv no pieprasījuma apkalpošanas saskaņā ar rindu teoriju, fifo, lifo utt. Tas ir, kamēr process nav pabeigts, tas nenonāk citā, redzot šo uzvedību, tā nebūtu problēma programmai, kas apstrādā Pavedieni jo tas varētu radīt vairākus Pavedieni katram pieprasījumam, kas veic īpašas funkcijas.
Tad mums ir asinhronais, kas palīdz mums kalpot ar tas pats pavediens vairāki pieprasījumi atkarībā no to statusa, tādēļ, ja tiek izpildīti vairāki pieprasījumi, kamēr viens kaut ko apstrādā, mēs varam apmeklēt nākamo vai varbūt pat nevajadzētu gaidīt, kad tiek nosūtīts pieprasījums nosūtīt klientam datus:

Kā mēs redzam attēlā, tiek veikta tērzēšanas darbības simulācija, kur tā tiek pārskatīta, līdz ir jānosūta ziņojums.
Asinhronie ievades un izvades procesi
Kad mēs nolasām klienta pieprasījumus asinhroni, nav nepieciešams sākotnēji pilnībā izlasīt ziņojumu, bet mēs to varam redzēt pamazām, pateicoties apstrādes ātrumam.
Asinhronam darbam Python Mums ir divas funkcijas, kas var mums palīdzēt, viena ir izvēlieties un otrs ir aptauja, no kuriem pēdējais ir pieejams tikai vidē UNIX, tāpēc tas varētu būt nosacījums, ka mēs ierobežojam, ja vēlamies izveidot daudzplatformu programmu, tomēr tas ir risinājums, kas vislabāk atbilst, tāpēc mums ir jāņem vērā šī informācija.
izvēlieties funkciju ņem 3 secības kā nepieciešamos argumentus, bet ceturtais arguments nav obligāts un satur pārtraukums Sekundēs secības ir savienojumi, kurus mēs gaidīsim, jo ​​3 tie atbilst šādiem datiem: ievade, izvade, ārkārtas apstākļi (kļūdas, izņēmumi utt.).
Ja mēs nenorādām a pārtraukums, funkcija izvēlieties tas gaidīs, līdz kāda no sekvencēm būs gatava darbībai, pretējā gadījumā, ja mēs norādīsim taimautu, bloki gaidīs atbilstošo laiku. Funkcijas atdotās vērtības atspoguļo katras secības aktīvu apakškopu, piemēram, pirmā atgrieztā secība būs ievades secība, kurā mums būs ko lasīt.
Apskatīsim šādu koda piemēru, kā ieviest serveri, izmantojot izvēlieties funkciju:
 importēt ligzdu, atlasiet s = socket.socket () resursdators = ligzda.gethostname () ports = 1234 s.bind ((resursdators, ports)) s.listen (5) ieejas = [s], kamēr True: [b] rs, ws, es = select.select (ieejas, [], []) [/ b] r in rs: ja r ir s: c, addr = s.accept () print “Got connection from”, addr inputs.append (c) cits: mēģiniet: dati = r.recv (1024) atvienots = nav datu, izņemot ligzdu.kļūda: atvienots = patiess, ja atvienots: drukāt r.getpeername (), 'atvienotas' ieejas.noņemt (r) cits: drukāt datus 

Kā redzam, zvanot uz izvēlieties funkciju izlaižot 3 obligātās secības, mēs nokārtojam mainīgo ievades, kas ir saistīts ar to, ko serveris uztver, klausoties TCP portā 1234, tad mēs atkārtojam, lai parādītu informāciju.
Kā redzam, šis īstenošanas aspekts ir pavisam vienkāršs, un robežu noteiks mūsu radošums, veidojot programmu.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu
wave wave wave wave wave