Bonsoir, tout le monde. J'écris le programme multithread utilisant Python 2.7 et enfilant le module. Voici un exemple de code:Python pthread_detach analogique
# Importing myFunc function which will be run in the new thread
from src.functions import myFunc
# Importing a threading module
import threading
# Creating and running new thread initiated by our function
# and some parameters.
t = threading.Thread(target=myFunc, args=(1, 2, 3))
t.start()
Je sais que dans C++ (bibliothèques de threads POSIX) il y a une fonction pthread_detach() qui met un fil conducteur dans l'état détaché. Il garantit que ce thread relâchera des ressources sur le système après la fin de la fonction. Donc, y a-t-il un analogue d'une telle fonction dans Python? Ou, peut-être, il n'est pas nécessaire de détacher les threads en Python, et les ressources prises par le thread seront libérées automatiquement après la fin de la fonction threadée?
J'ai essayé de rechercher des informations sur docs.python.org et Google mais c'était infructueusement.
Ce n'est pas si simple. Êtes-vous sûr que le code est réellement utilisé par l'interpréteur (voir le commentaire en haut de ['Python/thread.c'] (http://hg.python.org/cpython/file/8a6068ec220e/Python/thread.c# l2) (le seul endroit où 'thread_pthread.h' est utilisé))? Pour autant que je comprenne 'pthread_detach()' rend le thread unjoinable, mais les threads créés avec 'threading.Thread()' * sont * jointable. – jfs
@ jf-sebastian Vous comparez des pommes avec des oranges ici: '' pthread_detach'' rend le thread système sous-jacent unjoinable, ce qui n'a rien à voir avec la méthode join de '' threading.Thread'', donc vous ne pouvez pas conclure pthread_detach n'est pas appelé. En fait, Python utilise de préférence pthreads sur Unix quand il est disponible (c'est sur Linux), et le seul appel à '' pthread_create'' dans les sources Python 2.7 est dans cette fonction, donc la réponse est correcte. [Join in Python] (https://hg.python.org/cpython/file/v2.7.10/Lib/threading.py#l911) n'utilise pas pthread_join et ne fournit pas de valeur de retour du thread. – Bluehorn