lorsque tu crées un thread sous linux sans passer de parametre, il est par défaut en mode normal, il faut donc appeler la fonction pthread_join pour liberer la ressource.
Tu peux par contre créer des threads en mode détaché, ils sont libéré dès que la fonction de thread se termine. En contrepartie, il me semble que tu ne peux pas faire un certain type d'opération sur le thread (comme suspendre le thread ).
pour créer un thread en mode détaché,voici comment je fais :
Code :
- pthread_attr_t attr;
- pthread_attr_init(&attr);
- pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);
- pthread_create(&m_hThread,&attr,DefaultThreadFunc, this);
|
Les dangers : si ton thread n'est pas libéré, tu peux atteindre facilement la limite (MAX_THREADS qui doit valoir 1024) , et donc ne plus avoir la possibilité de créer un thread supplémentaire.
Message édité par xilebo le 14-02-2006 à 11:07:52