Is Python goed voor gelijktijdigheid?
Is Python goed voor gelijktijdigheid?

Video: Is Python goed voor gelijktijdigheid?

Video: Is Python goed voor gelijktijdigheid?
Video: How to Deal With Concurrency in Python 2024, Mei
Anonim

Python is niet erg Goed voor CPU-gebonden gelijktijdige programmeren. De GIL zal (in veel gevallen) uw programma laten draaien alsof het op een enkele kern draait - of erger nog. Als uw toepassing I/O-gebonden is, Python kan een serieuze oplossing zijn, aangezien de GIL normaal gesproken wordt vrijgegeven tijdens het blokkeren van oproepen.

Ook om te weten is, ondersteunt Python gelijktijdigheid?

Python wel hebben ingebouwde bibliotheken voor de meest voorkomende gelijktijdige programmeerconstructies - multiprocessing en multithreading. De reden is, multithreading in Python is niet echt multithreading, vanwege de GIL in Python.

Je kunt je ook afvragen waarom multithreading niet mogelijk is in python? De CPython-interpreter (voor pure Python code) dwingt de GIL om elke honderd byte code-instructies te worden vrijgegeven. Het staat eenvoudigweg toe dat slechts één thread tegelijk binnen de interpreter wordt uitgevoerd. Dus multiprocessing niet multithreading zal u toelaten om echte gelijktijdigheid te bereiken.

Vervolgens is de vraag: is Python goed voor multithreading?

Python staat niet toe multithreading in de ware zin van het woord. Het heeft een multithreading pakket, maar als je wilt: multi-thread om je code te versnellen, dan is het meestal geen Goed idee om het te gebruiken. Python heeft een constructie genaamd Global Interpreter Lock (GIL).

Welke module kan worden gebruikt om gelijktijdigheid in Python 3 te implementeren?

De gelijktijdige . toekomst module is toegevoegd in Python 3.2. Volgens de Python documentatie biedt het de ontwikkelaar een interface op hoog niveau voor het asynchroon uitvoeren van callables.

Aanbevolen: