Приостановить pthreads без использования условия

Я хочу приостановить работу pthreads, но, по-видимому, такой функции, как pthread_suspend, не существует. Я где-то читал о приостановке pthreads с использованием мьютексов и условий и использовал его следующим образом:

#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);
}
};

но я не понимаю, почему нам нужен и мьютекс, и условие для приостановки и возобновления pthread. Можно ли приостановить и возобновить его без использования условий?

Ответы на вопрос(6)

Ваш ответ на вопрос