Provlačenje niti u Pythonu: naučite kako raditi s nitima u Pythonu



Ovaj članak o Threadingu u Pythonu reći će vam što su Threads, njihove vrste, kako ih pokrenuti i iskoristiti na najbolji mogući način

Danas, jedan je od najomiljenijih programskih jezika širom svijeta. Od svog osnutka 1990-ih, okupio je ogroman broj sljedbenika i entuzijasta i programera koji svakodnevno rade na poboljšanju ovog programskog jezika. Među mnogim značajkama ugrađenim u ekosustav Python, jedno se najviše ističe Threading. Stoga ćemo u ovom članku razgovarati o Threadingu u Pythonu, kako ga možete iskoristiti, zajedno s prednostima i nedostacima.

U ovom će članku biti obrađeni sljedeći putokazi,





Krenimo

Provlačenje niti u Pythonu

Što je nit u Pythonu?

Nit u Pythonu jednostavno se može definirati kao zaseban tok izvršenja. To jednostavno znači da će se u vašem programu istodobno izvršiti dva različita procesa. Jedan zanimljiv aspekt navoja u Pythonu je činjenica da se nakon verzije 3 više niti u Pythonu ne izvršava istovremeno, već se samo čini.



Iako je nevjerojatan osjećaj istodobno izvoditi dva različita procesa, treba shvatiti da je trenutna verzija Pythona 3 i novijih kodirana na takav način da se samo proces može pokrenuti u bilo kojem trenutku. Ako pak trebate istovremeno povezati dva ili više procesa u CPythonu, morate kodirati neki svoj kod i na drugim jezicima, kao što su C, C ++ i Java, a zatim ih pokrenuti kroz više navoja u Pythonu.

Jedna od najpoznatijih prednosti navoja navoja u Pythonu je njegova sposobnost pružanja dobitka u jasnoći dizajna.

Prije toga imamo neku ideju o Threadingu u Pythonu, shvatimo kako započeti nit,



Pokretanje niti u Pythonu

Sad kad ste se navikli na definiciju niti u Pythonu, pogledajmo primjer kako možete stvoriti vlastitu nit u Pythonu. Da biste stvorili nit u Pythonu, prvo trebate uvesti biblioteku niti, a zatim joj uputiti da pokrene () kao što je prikazano u donjem primjeru:

import logging uvoz navoja uvoza vrijeme uvoja def thread_function (name): logging.info ('Thread% s: start', name) time.sleep (2) logging.info ('Thread% s: finish', name) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') logging.info ( 'Glavni & ampampampnbsp & ampampampnbsp: prije stvaranja niti') x = navoja.Nit (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: prije pokretanja niti') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: pričekajte da se nit završi ') # x.join () logging.info (' Glavna & ampampampnbsp & ampampampnbsp: sve gotovo ')

Izlaz

Izlaz - uvođenje navoja u Pythonu - Edureka

Kada pokrenete nit u Pythonu, prosljeđujete je kao funkciju koja sadrži popis argumenata koje treba izvršiti. U gore podijeljenom primjeru nalažete Pythonu da pokrene nit, thread_function () i proslijedi je na 1 kao argument.

Kada pokrenete gornji program, izlaz će izgledati otprilike ovako.

Sljedeći dio ovog članka o 'Threading in Python' da vidimo što su daemon niti,

Što su Daemon Threads?

U tehničkoj terminologiji, demon se može definirati kao proces koji primarno radi u pozadini. Međutim, u Pythonu daemon nit ima vrlo specifično značenje. U Pythonu će se demon demon zaustaviti u trenutku kada je program izašao, iako će se u drugim programskim jezicima nastaviti prikazivati ​​u pozadini. Ako u određenom programu nit nije programirana kao daemon nit, tumač će pričekati da završi s radom, a zatim samo isključiti tumač.

selen webdriver s primjerom krastavca u pomrčini

Da biste bolje razumjeli ovaj koncept, pogledajte gornji primjer. U drugom posljednjem retku program čeka nekoliko sekundi nakon što završi sve svoje zadatke. To je zato što čeka da nedemonska nit završi svoj rad, a zatim izađe iz sučelja. Jednom kada nit završi svoj rad, tada program samo izlazi.

Sada izmijenimo gornji program i vidjet ćemo što će se dogoditi ako u kod umetnemo nit demona.

Novi kôd: x = navoja.Nit (cilj = funkcija_navoja, args = (1,), daemon = True)

Kada pokrenete gornji program s izvršenim izmjenama, izgledat će otprilike ovako.

Razlika između ova dva izlaza je u tome što u zadnjem retku nedostaje završni redak. Thread_function () nije dobio priliku za dovršetak, jer smo umetnuli demon demon i čim je stigao do kraja, izašao je iz programa.

Pridruživanje niti

Sad kad ste naučili o konceptu stvaranja niti u Pythonu, zajedno s konceptom demonske niti, otkrit ćemo kako možete pridružiti niti u Pythonu.

Korištenjem funkcije join () u Pythonu možete spojiti dvije različite niti, a također uputiti jednu da pričeka drugu dok ne završi svoje izvršavanje. Ova značajka često će vam dobro doći kada kodirate velike programe i trebate da se svi procesi izvršavaju u određenom redoslijedu

Završni dio ovog članka o 'Threading in Python' pokazat će vam radne više niti,

Rad s više niti

U gornjim primjerima govorili smo o tome kako možete raditi s dvije niti odjednom. Ali što ako u određenoj situaciji morate istodobno raditi s više niti. Za bolje razumijevanje situacije, pogledajte primjer u nastavku.

import logging uvoz navoja uvoza vrijeme uvoja def thread_function (name): logging.info ('Thread% s: start', name) time.sleep (2) logging.info ('Thread% s: finish', name) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') niti = popis ( ) za indeks u rasponu (3): logging.info ('Glavna & ampampampnbsp & ampampampnbsp: stvori i pokreni nit% d.', indeks) x = navoja.Nit (cilj = funkcija_nit, args = (indeks,)) niti.dodaj (x ) x.start () za indeks, nit u enumerate (niti): logging.info ('Glavna & ampampampnbsp & ampampampnbsp: prije pridruživanja niti% d.', indeks) thread.join () logging.info ('Glavna & ampampampnbsp & ampampampnbsp: nit% d gotovo ', indeks)

Izlaz

što su grah u javi

U gore navedenom programu slijedili smo isti postupak uvoza knjižnice niti, pokretanja niti, stvaranja više niti, a zatim pomoću funkcije join () kombiniramo sve zajedno i izvršavamo se određenim redoslijedom.

Kada pokrenete gornji program, rezultat će izgledati otprilike ovako.

Zaključak

To je jedna od najprikladnijih značajki Pythona. Koristeći ga na ispravan način, svoj čitav postupak kodiranja možete učiniti puno lakšim i učinkovitijim. Iz gornjeg članka nadamo se da ste naučili osnove navoja niti i da ćete ih i dalje koristiti u svakodnevnom programiranju.

Dakle, to je to, nadam se da vam se svidio ovaj članak.

Možete dobiti detaljno znanje o Pythonu, zajedno s raznim aplikacijama za mrežni trening uživo s podrškom 24/7 i doživotnim pristupom.

Imate pitanje za nas? Spomenite ih u odjeljku za komentare ovog članka i javit ćemo vam se.