Python est-il bon pour la simultanéité ?
Python est-il bon pour la simultanéité ?

Vidéo: Python est-il bon pour la simultanéité ?

Vidéo: Python est-il bon pour la simultanéité ?
Vidéo: APPRENDRE LE PYTHON #1 ? LES BASES & PREREQUIS 2024, Décembre
Anonim

Python n'est pas très bon pour lié au processeur concurrent la programmation. Le GIL fera (dans de nombreux cas) faire fonctionner votre programme comme s'il fonctionnait sur un seul cœur - ou même pire. Si votre application est liée aux E/S, Python peut être une solution sérieuse car le GIL est normalement libéré lors des appels bloquants.

A savoir également, Python prend-il en charge la simultanéité ?

Python fait ont des bibliothèques intégrées pour les plus courantes concurrent constructions de programmation - multitraitement et multithreading. La raison en est que le multithreading dans Python n'est pas vraiment multithread, en raison du GIL dans Python.

On peut aussi se demander pourquoi le multithreading n'est pas possible en python ? L'interpréteur CPython (pour Python code) forcera le GIL à être libéré toutes les instructions de code de cent octets. Il permet simplement à un seul thread de s'exécuter à la fois dans l'interpréteur. Donc multitraitement pas de multithreading vous permettra d'obtenir une véritable simultanéité.

Par la suite, la question est: Python est-il bon pour le multithreading ?

Python ne permet pas multi-threading dans le vrai sens du terme. Il a un multi-threading paquet mais si vous voulez multifil pour accélérer votre code, alors ce n'est généralement pas un bon idée de l'utiliser. Python a une construction appelée Global Interpreter Lock (GIL).

Quel module peut être utilisé pour implémenter la concurrence dans Python 3 ?

Les concurrent . à terme module a été ajouté dans Python 3.2. Selon le Python documentation, il fournit au développeur une interface de haut niveau pour l'exécution asynchrone des callables.

Conseillé: