Python - asinchroniniai procesai

Turinys
Kai įžengsime į kelių apdorojimo, serverių ir įvairių užklausų pasaulį, turime žinoti, kad yra įvairių tipų atsakymų ar elgsenos, sinchroninis ir asinchroninis.
Pirmasis susideda iš užklausos pateikimo pagal eilių teoriją, fifo, lifo ir kt. Tai yra, kol procesas nėra baigtas, jis nekeičiamas kitam, matydamas tokį elgesį, tai nebūtų problema programai, kuri tvarko Siūlai nes jis gali generuoti kelis Siūlai kiekvienai užklausai, kuri atlieka tam tikras funkcijas.
Tada mes turime asinchroninį, kuris padeda mums tarnauti su ta pati gija kelios užklausos, atsižvelgiant į jų būseną, taigi, jei įvykdytos kelios užklausos, kol vienas ką nors apdoroja, galime atlikti kitą, o gal net nelaukti, kol bus išsiųstas prašymas klientui:

Kaip matome paveikslėlyje, atliekamas pokalbio veikimo modeliavimas, kur jis peržiūrimas, kol yra pranešimas, kurį reikia perduoti.
Asinchroniniai įvesties ir išvesties procesai
Kai skaitome asinchroniškai kliento užklausas, nebūtina iš pradžių visiškai perskaityti pranešimo, tačiau dėl apdorojimo greičio galime jį pamažu matyti.
Dėl asinchroninio darbo Python Turime dvi funkcijas, kurios gali mums padėti, viena yra pasirinkti o kitas yra apklausa, iš kurių pastarasis galimas tik aplinkai UNIX, todėl gali būti sąlyga, kad mes nustatysime ribas, jei norime sukurti daugiaplatformę programą, tačiau tai yra geriausias sprendimas, todėl turime atsižvelgti į šią informaciją.
The pasirinkti funkciją priima 3 sekas kaip privalomus argumentus, o ketvirtasis argumentas yra neprivalomas ir jame yra laikas baigėsi Per kelias sekundes sekos yra jungtys, kurių lauksime, nes 3 jos atitinka šiuos duomenis: įvestis, išvestis, išskirtinės sąlygos (klaidos, išimtys ir kt.).
Jei nenurodysime a laikas baigėsi, funkcija pasirinkti jis lauks, kol viena iš sekų bus paruošta veiksmui, kitaip, jei nurodysime skirtąjį laiką, blokai lauks atitinkamo laiko. Funkcijos grąžintos reikšmės yra aktyvus kiekvienos sekos pogrupis, pavyzdžiui, pirmoji grąžinta seka bus įvesties seka, kurioje turėsime ką perskaityti.
Pažiūrėkime šį kodo pavyzdį, kaip įdiegti serverį naudojant pasirinkti funkciją:
 importuoti lizdą, pasirinkite s = socket.socket () host = socket.gethostname () port = 1234 s.bind ((pagrindinis kompiuteris, prievadas)) s.listen (5) įėjimai = [s], o tiesa: [b] rs, ws, es = select.select (įėjimai, [], []) [/ b] r (c) kitas: pabandykite: duomenys = r.recv (1024) atjungtas = ne duomenys, išskyrus lizdą. klaida: atjungta = tiesa, jei atjungta: spausdinti 

Kaip matome, paskambinę pasirinkti funkciją praėję 3 privalomas sekas, perduodame kintamąjį įvestys, kuris yra susietas su tuo, ką serveris užfiksuoja klausydamasis 1234 TCP prievado, tada kartojame, kad būtų rodoma informacija.
Kaip matome, šis įgyvendinimo aspektas yra gana paprastas ir ribą suteiks mūsų kūrybiškumas kuriant programą.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave