这个示例代码中展示了条件变量的用法,主线程创建了三个子线程,其中两个子线程会更新一个全局变量,第三个子线程会等待全局变量满足一定条件后开始执行操作。
代码中注意如下几个细节:
- #include <pthread.h>
- #include <stdio.h>
- #include <stdlib.h>
-
- #define NUM_THREADS 3
- #define TCOUNT 10
- #define COUNT_LIMIT 12
-
- int count = 0;
- pthread_mutex_t count_mutex;
- pthread_cond_t count_threshold_cv;
-
- void *inc_count(void *t)
- {
- int i;
- long my_id = (long)t;
-
- for (i = 0; i < TCOUNT; i++) {
- pthread_mutex_lock(&count_mut