Suspendre les pthreads sans l'aide d'état

Je veux suspendre pthreads mais apparemment, il n'y a pas une telle fonction comme pthread_suspend. J'ai lu quelque part au sujet de la suspension de pthreads utiliser les mutex et les conditions et l'a utilisé comme suit:

#include <pthread.h>

class PThread {
public:
pthread_t myPthread;
pthread_mutex_t m_SuspendMutex;
pthread_cond_t m_ResumeCond;

void start() {
pthread_create(&myPthread, NULL, threadRun, (void*)this );
}

Thread() { }

void suspendMe() {
pthread_cond_wait(&m_ResumeCond,&m_SuspendMutex);
}

void resume() {
pthread_cond_signal(&m_ResumeCond);
}
};

mais je ne comprends pas pourquoi nous avons besoin d'un mutex et l'état de suspendre et de reprendre un pthread. Est-il possible de suspendre et de reprendre sans conditions d'utilisation?

OriginalL'auteur sleep | 2010-06-29