pthread_cond_wait()函数用于线程挂起,直到某个条件变量被唤醒。具体步骤如下:

  1. 定义条件变量和互斥锁
pthread_cond_t cond;
pthread_mutex_t mutex;
  1. 初始化条件变量和互斥锁
pthread_cond_init(&cond, NULL);
pthread_mutex_init(&mutex, NULL);
  1. 创建线程
pthread_t tid;
pthread_create(&tid, NULL, thread_func, NULL);
  1. 在线程函数中实现线程挂起
void *thread_func(void *arg) {
    pthread_mutex_lock(&mutex);
    // 在这里可以进行一些计算或者操作
    // 如果满足某个条件,就可以唤醒等待该条件变量的线程
    pthread_cond_signal(&cond);
    pthread_mutex_unlock(&mutex);
    pthread_exit(NULL);
}
  1. 在主线程中等待条件变量被唤醒
pthread_mutex_lock(&mutex);
pthread_cond_wait(&cond, &mutex);
// 当条件变量被唤醒后,执行相应的操作
pthread_mutex_unlock(&mutex);
  1. 最后,销毁条件变量和互斥锁
pthread_cond_destroy(&cond);
pthread_mutex_destroy(&mutex);
用pthread_cond_wait实现线程挂起。

原文地址: http://www.cveoy.top/t/topic/bw0l 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录