401 votes

Time.Sleep--dort thread ou processus ?

En Python pour les * nix, fait `` bloquer le thread ou le processus ?

401voto

Nick Bastin Points 12627

Elle bloque le thread. Si vous regardez dans Modules/timemodule.c dans la source Python, vous verrez que dans l’appel à `` , la partie essentielle de l’opération de sommeil est encapsulée dans un bloc Py_BEGIN_ALLOW_THREADS et Py_END_ALLOW_THREADS, permettant aux autres threads de continuer d’exécuter alors que le courant que l'on dort. Vous pouvez également le tester avec un programme python simple :

Qui sera imprimé :

59voto

Zach Burlingame Points 7232

Il dormira tout le fil sauf dans le cas où votre application possède un seul thread, dans ce cas, il va dormir le thread et efficacement le processus ainsi.

La documentation de python sur le sommeil ne spécifie pas cela cependant, donc je peux certainement comprendre la confusion !

http://docs.Python.org/2/Library/Time.html

38voto

finnw Points 24592

Juste le fil.

18voto

Corey Goldberg Points 15625

Oui, d’accord avec Burly.

Le thread se bloque, mais le processus est encore en vie.

Dans une application multithread unique, cela signifie que tout est bloqué pendant que vous dormez. Dans une application multithread, seul le thread vous explicitement « sommeil » se bloque et les autres threads s’exécutent toujours dans le processus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X