Python - Više veza

Sadržaj
Kao što znamo Piton Ima mnogo knjižnica koje nam omogućuju rad i upravljanje vezama u mrežama, bilo da se povezujemo s udaljenim datotekama ili naš program služi kao poslužitelj, u osnovnim primjerima korištenja utičnica s Piton vidljivo je da se njime vrlo lako rukuje upotrebom modula utičnicaMeđutim, kako bi to bila robusnija aplikacija, moramo biti sposobni obraditi više veza.
Za rukovanje s više veza u Piton možemo koristiti Račvanje i od Uvlačenje niti, kako bismo mogli generirati asinhrone ulazne i izlazne procese koji nam omogućuju da prisustvujemo nekoliko veza istovremeno.
Vilica i provlačenje niti
Ako smo u prvim koracima učenja programiranja ili smo samo radili strukturirano programiranje, možda se ti pojmovi mogu činiti kompliciranima koji su nepoznati, međutim to su jednostavni pojmovi za razumijevanje i sažimanje, pogledajmo definicije prije nego nastavimo dalje.
Račvanje: To je izraz koji se koristi u okruženjima UNIX i sastoji se od izrade bifurkacije, s procesom koji ga dupliciramo, a zatim imamo dva jednaka procesa, ali svaki sa svojim opsegom, izvorni proces poznat je kao roditeljski proces, a duplicirani proces poznat kao podređeni proces, ako napravimo analogiju sa znanstvenom fantastikom, možemo ih promatrati kao paralelne svemire, gdje iste stvari postoje samo da se mogu ponašati različito u istim točkama.
Nedostatak Račvanje je da to može biti jako skupo u smislu resursa i zato imamo Uvlačenje niti, a Nit To je nit, u ovom slučaju niti su podprocesi koji pripadaju istom procesu, dijele memoriju i resurse, na taj način smanjujemo troškove resursa procesora, međutim dijeljenjem memorije otkrivamo problem koji moramo biti vrlo oprezni s elementima na koje se Niti kako ne bi došlo do kompromitiranog poslovanja.
Sada kada poznajemo teoriju i osnovne pojmove, vidjet ćemo neke primjere u kojima možemo vidjeti primjenu Piton.
Kao što smo rekli na početku zahvaljujući velikom broju modula i knjižnica koji postoje u Piton, izrada programa s mrežnim funkcionalnostima vrlo je jednostavna pa se možemo usredotočiti na logiku umjesto na tehničke aspekte.
Pogledajmo na sljedećoj slici primjer Račvanje, tada ćemo objasniti što se događa s kodom:

Prvo što radimo je uvoziti module iz kojih nam je potrebno SocketServer, važno je da pogledamo ForkingMixIn koji će biti zadužen za upravljanje dupliciranjem procesa sa svakim zahtjevom, tada definiramo klasu Poslužitelj Y RukovateljUnutar Handlera postavljamo konstruktor, koji je taj koji će upravljati onim što će se dogoditi s dolaznim vezama, u ovom slučaju, on će dobiti ime klijenta i ispisati poruku; Na kraju instanciramo klasu Server, prosljeđujemo joj parametre, prvo port na kojem će prihvatiti veze, a zatim klasu Rukovatelj, na kraju nazivamo metodu posluži_zauvijek za pokretanje poslužitelja kako bi mogao upravljati zahtjevima klijenata.
Kako vidimo da je ova aplikacija vrlo jednostavna, pogledajmo kako možemo postići nešto slično koristeći Niti, na sljedećoj slici imamo primjer:

Možemo shvatiti da je to gotovo potpuno isti gornji kod s tom razlikom da umjesto korištenja ForkingMixIn, koristimo ThreadingMixInDakle, kao što vidimo, ovo su ključne knjižnice za takvo ponašanje pri izradi programa koji prihvaćaju više veza.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave