Threading Python-ban: Ismerje meg a Python szálainak kezelését



Ez a cikk a Threadingról a Pythonban elárulja, hogy mik azok a szálak, annak típusai, hogyan lehet elindítani és a lehető legjobb módon használni őket

Ma, az egyik legkedveltebb programozási nyelv a világon. Az 1990-es évek megalakulása óta hatalmas rajongókat és rajongókat és kódolókat gyűjtött össze, akik mindennap dolgoznak azért, hogy ez a programozási nyelv jobb legyen. A Python ökoszisztémában beépített számos funkció közül a Threading a leginkább kiemelkedő. Ezért ebben a cikkben a Threadingról a Python-ban fogunk beszélni, hogyan lehet kihasználni azt, annak előnyeivel és hátrányaival együtt.

A következő hivatkozásokkal foglalkozunk ebben a cikkben,





Kezdjük

Threading Pythonban

Mi a szál a Pythonban?

Egy szál a Pythonban egyszerűen meghatározható a végrehajtás külön folyamataként. Ez egyszerűen azt jelenti, hogy a programban egyszerre két különböző folyamat fog végrehajtódni. A Python szálképzésének egyik érdekes szempontja az a tény, hogy a 3. verzió után a Python több szálát sem hajtják végre egyszerre, hanem csak egyszerűen megjelennek.



Bár elképesztő érzés két különböző folyamatot egyszerre futtatni, meg kell értenünk, hogy a Python 3 és újabb verzióinak jelenlegi verziója oly módon van kódolva, hogy csak a folyamat futtatható az adott időpontban. Ha azonban két vagy több folyamatra van szükség egyszerre a CPythonban, akkor kódjának egy részét más nyelveken is kódolnia kell, például C, C ++ és Java, majd több szálon kell futtatnia a Pythonban.

A Python menetesítésének egyik legismertebb előnye az a képesség, hogy nyereséget nyújtson a tervezés egyértelműségében.

Előtte van egy ötletünk a Threadingról a Pythonban, hadd értsük meg, hogyan kell elindítani egy szálat,



Szál indítása a Pythonban

Most, hogy megszokta a Python szálának meghatározását, nézzünk meg egy példát arra, hogyan hozhat létre saját szálat a Pythonban. Szál létrehozásához a Pythonban először importálnia kell a szálkönyvtárat, majd utasítania kell az indításra () az alábbi példában látható módon:

import naplózás import szál importálás ideje def szál_funkció (név): logging.info ('% s szál: kezdet', név) time.sleep (2) logging.info ('% s szál: befejezés', név) if __név__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') logging.info ( 'Main & ampampampnbsp & ampampampnbsp: a szál létrehozása előtt') x = threading. Thread (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: thread futtatása előtt') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: várja meg a szál befejezését ') # x.join () logging.info (' Main & ampampampnbsp & ampampampnbsp: minden kész ')

Kimenet

Kimenet - Threading Pythonban - Edureka

Amikor egy szálat futtat a Pythonban, azt továbbítja funkcióként, amely tartalmazza az elvégzendő argumentumok listáját. A fenti megosztott példában arra utasítja a Pythont, hogy futtassa a thread, thread_function () futtatást, és adja át argumentumként 1-nek.

Amikor futtatja a fenti programot, a kimenet valami ilyennek fog kinézni.

A cikk következő szakasza a „Threading in Python” témakörben megnézzük, melyek a démon szálak,

Mik azok a démonszálak?

A technikai terminológiában a démon olyan folyamatként definiálható, amely elsősorban a háttérben fut. A Pythonban azonban egy démonszálnak nagyon konkrét jelentése van. A Pythonban egy démonszál leállítja a program kilépésének pillanatát, bár más programnyelveken továbbra is a háttérben fut. Ha egy adott programban egy szál nincs beprogramozva démonszálnak, akkor a tolmács megvárja, amíg befejezi a működését, majd csak leállítja a tolmácsot.

Ennek a koncepciónak a jobb megértéséhez vessen egy pillantást a fenti példára. A második utolsó sorban a program néhány másodpercet vár, miután minden feladata befejeződött. Ugyanis arra vár, hogy a nem daemonikus szál befejezze működését, majd kilépjen az interfészről. Miután a szál befejezte a működését, akkor csak a program lép ki.

Most módosítsuk a fenti programot, és nézzük meg, mi történik, ha beillesztünk egy démon szálat a kódba.

Új kód: x = threading. Thread (target = thread_function, args = (1,), daemon = True)

Amikor a fenti programot a végrehajtott módosításokkal futtatja, valami ilyesmi fog kinézni.

E két kimenet között annyi a különbség, hogy a legújabb sor hiányzik. A thread_function () nem kapott esélyt a befejezésre, mert beillesztettünk egy démon szálat, és amint hamarosan a végére ért, kilépett a programból.

Csatlakozás egy szálhoz

Most, hogy megismerte a szál létrehozásának a Pythonban fogalmát, valamint a démonikus szál fogalmát, fedezze fel, hogyan lehet összekapcsolni a szálakat a Pythonban.

A Python Join () függvényével két különböző szálat kapcsolhat össze, és utasíthatja az egyiket, hogy várja meg a másikat, amíg befejezi a végrehajtását. Ez a szolgáltatás gyakran hasznos lesz, ha nagy alkalmazásokat kódol, és minden folyamatot egy adott sorrendben kell végrehajtania

A „Threading in Python” című cikk utolsó bitje megmutatja a működő több szálat,

Több szál használata

A fenti példákban arról beszéltünk, hogyan lehet egyszerre két szálat használni. De mi van, ha egy bizonyos helyzetben egyszerre több szálal kell dolgoznia. A helyzet jobb megértése érdekében nézze meg az alábbi példát.

import naplózás import szál importálás ideje def szál_funkció (név): logging.info ('% s szál: kezdet', név) time.sleep (2) logging.info ('% s szál: befejezés', név) if __név__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') szálak = lista ( ) az indexhez a (3) tartományban: logging.info ('Main & ampampampnbsp & ampampampnbsp:% d. szál létrehozása és indítása', index) x = threading. Menet (target = thread_function, args = (index,)) threads.append (x ) x.start () az indexhez, az inumerate szál (szálak): logging.info ('Main & ampampampnbsp & ampampampnbsp: a% d. szál csatlakoztatása előtt, index) thread.join () logging.info (' Main & ampampampnbsp & ampampampnbsp:% d szál kész ”, index)

Kimenet

mi a lényeg a pythonban

A fenti programban ugyanazt az eljárást követtük a szálkönyvtár importálásakor, a szál elindításakor, több szál létrehozásában, majd a join () függvény segítségével kombinálva mindet, és egy adott sorrendben végrehajtva.

A fenti program futtatásakor az eredmény valami ilyennek fog kinézni.

Következtetés

Ez a Python egyik legkézenfekvőbb szolgáltatása. A megfelelő módon történő használatával sokkal könnyebbé és hatékonyabbá teheti a teljes kódolási folyamatot. A fenti cikkből reméljük, hogy megtanulta a szálak alapjait, és továbbra is használni fogja mindennapi programozásában.

Tehát ez srácok, remélem, tetszett ez a cikk.

Ha részletes ismereteket szeretne szerezni a Pythonról és annak különböző alkalmazásokról, megteheti élő online képzéshez 24/7 támogatással és egész életen át elérhető hozzáféréssel.

Van egy kérdésünk? Említse meg őket a cikk megjegyzés rovatában, és mi kapcsolatba lépünk Önnel.