Threading in Python: leer hoe u met threads in Python kunt werken



Dit artikel over Threading in Python zal je vertellen wat Threads zijn, de typen, hoe je ze kunt starten en ze op de best mogelijke manier kunt gebruiken

Vandaag, is een van de meest geliefde programmeertalen ter wereld. Sinds de oprichting in de jaren negentig heeft het een enorme aanhang verzameld en enthousiastelingen en programmeurs die elke dag werken om deze programmeertaal te verbeteren. Een van de vele functies die ingebouwd zijn in het Python-ecosysteem, is een die het meest opvalt Threading. Daarom zullen we in dit artikel alles hebben over Threading in Python, hoe je er gebruik van kunt maken, samen met de voor- en nadelen ervan.

De volgende tips komen in dit artikel aan bod:





Laten we beginnen

Threading in Python

Wat is een thread in Python?

Een thread in Python kan eenvoudig worden gedefinieerd als een afzonderlijke uitvoeringsstroom. Wat dit simpelweg betekent dat in uw programma twee verschillende processen in dezelfde tijd worden uitgevoerd. Een interessant aspect van threading in Python is het feit dat na versie 3 meerdere threads in Python niet tegelijkertijd worden uitgevoerd, maar dat het er alleen maar uitziet.



Hoewel het een geweldig gevoel is om twee verschillende processen tegelijkertijd uit te voeren, moet je begrijpen dat de huidige versie van Python 3 en hoger zo is gecodeerd dat alleen het proces op een bepaald moment kan worden uitgevoerd. Als je echter twee of meer processen tegelijk in CPython nodig hebt, moet je een deel van je code ook in andere talen coderen, zoals C, C ++ en Java, en ze vervolgens door multi-threading in Python laten lopen.

Een van de bekendste voordelen van threading in Python is de mogelijkheid om een ​​duidelijker ontwerp te bieden.

Voordat we een idee hebben over Threading in Python, laten we weten hoe we een thread kunnen starten,



Een discussie starten in Python

Nu u gewend bent aan de definitie van een thread in Python, laten we eens kijken naar een voorbeeld van hoe u uw eigen thread in Python kunt maken. Om een ​​thread in Python te maken, moet u eerst de threadbibliotheek importeren en deze vervolgens opdracht geven om () te starten, zoals in het onderstaande voorbeeld wordt getoond:

java is a vs heeft een
import logging import threading import tijd def thread_function (naam): logging.info ('Thread% s: start', naam) time.sleep (2) logging.info ('Thread% s: finishing', naam) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') logging.info ( 'Main & ampampampnbsp & ampampampnbsp: voordat thread wordt gemaakt') x = threading.Thread (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: voordat thread wordt uitgevoerd') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: wacht tot de thread klaar is ') # x.join () logging.info (' Main & ampampampnbsp & ampampampnbsp: alles klaar ')

Uitvoer

Uitvoer - Threading in Python - Edureka

Als je een thread in Python uitvoert, geef je deze door als een functie die een lijst met argumenten bevat die hij moet uitvoeren. In het hierboven gedeelde voorbeeld geef je Python de opdracht om de thread thread_function () uit te voeren en deze als argument door te geven aan 1.

Als u het bovenstaande programma uitvoert, ziet de uitvoer er ongeveer zo uit.

In het volgende deel van dit artikel over ‘Threading in Python’ laten we zien wat daemon-threads zijn,

Wat zijn Daemon Threads?

In technische terminologie kan de daemon worden gedefinieerd als een proces dat voornamelijk op de achtergrond wordt uitgevoerd. In Python heeft een daemon-thread echter een heel specifieke betekenis. In Python wordt een daemon-thread afgesloten op het moment dat het programma wordt afgesloten, hoewel het in andere programmeertalen op de achtergrond blijft draaien. Als in een bepaald programma een thread niet is geprogrammeerd als een daemon-thread, dan zal de interpreter wachten totdat deze klaar is met werken en vervolgens alleen de interpreter uitschakelen.

hoe scannerklasse te gebruiken in java

Bekijk het bovenstaande voorbeeld om dit concept beter te begrijpen. Op de voorlaatste regel wacht het programma een paar seconden nadat het al zijn taken heeft voltooid. Dit komt omdat het wacht tot de niet-daemonische thread zijn bewerking heeft voltooid en vervolgens de interface verlaat. Zodra de thread zijn bewerking heeft voltooid, wordt alleen het programma afgesloten.

Laten we nu het bovenstaande programma aanpassen en kijken wat er gebeurt als we een daemon-thread in de code invoegen.

Nieuwe code: x = threading.Thread (target = thread_function, args = (1,), daemon = True)

Als u het bovenstaande programma uitvoert met de aangebrachte wijzigingen, ziet het er ongeveer zo uit.

Het verschil tussen deze twee outputs is dat de laatste regel ontbreekt in de laatste. De thread_function () kreeg geen kans om te voltooien, omdat we een daemon-thread hebben ingevoegd en zodra deze het einde bereikte, verliet het het programma.

Lid worden van een discussie

Nu je hebt geleerd over het concept van het maken van een thread in Python, samen met het concept van een daemonische thread, laten we ontdekken hoe je threads in Python kunt samenvoegen.

Door de functie join () in Python te gebruiken, kun je twee verschillende threads samenvoegen en de ene op de andere laten wachten totdat de uitvoering is voltooid. Deze functie is vaak handig wanneer u grote applicaties codeert en u alle processen in een bepaalde volgorde wilt uitvoeren

Het laatste deel van dit artikel over ‘Threading in Python’ laat je de werkende Multiple Threads zien,

Werken met meerdere threads

In de bovenstaande voorbeelden hebben we gesproken over hoe u met twee threads tegelijk kunt werken. Maar wat als u in een bepaalde situatie met meerdere threads tegelijk moet werken? Bekijk het onderstaande voorbeeld voor een beter begrip van de situatie.

import logging import threading import tijd def thread_function (naam): logging.info ('Thread% s: start', naam) time.sleep (2) logging.info ('Thread% s: finishing', naam) if __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') threads = lijst ( ) voor index in bereik (3): logging.info ('Main & ampampampnbsp & ampampampnbsp: maak en start thread% d.', index) x = threading.Thread (target = thread_function, args = (index,)) threads.append (x ) x.start () voor index, thread in enumerate (threads): logging.info ('Main & ampampampnbsp & ampampampnbsp: voordat thread% d.', index) thread.join () logging.info ('Main & ampampampnbsp & ampampampnbsp: thread% d gedaan ', index)

Uitvoer

verschil tussen interface en klasse

In het bovenstaande programma hebben we dezelfde procedure gevolgd: het importeren van de threadbibliotheek, het starten van de thread, het maken van meerdere threads en vervolgens de functie join () gebruiken om alles samen te voegen en in een bepaalde volgorde uit te voeren.

Als u het bovenstaande programma uitvoert, ziet het resultaat er ongeveer zo uit.

Conclusie

Het is een van de handigste functies van Python. Door het op de juiste manier te gebruiken, kunt u uw hele coderingsproces veel eenvoudiger en efficiënter maken. Uit het bovenstaande artikel hopen we dat u de basisprincipes van het inrijgen heeft geleerd en deze in uw dagelijkse programmering zult blijven gebruiken.

Dus dit zijn het jongens, ik hoop dat je dit artikel leuk vond.

Om diepgaande kennis te krijgen van Python en de verschillende toepassingen ervan, kunt u voor live online training met 24/7 ondersteuning en levenslange toegang.

Heeft u een vraag voor ons? Noem ze in het opmerkingengedeelte van dit artikel en we nemen contact met u op.