思路:使用条件变量,一个线程等待count变成奇数,一个线程等待count变成偶数。
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
pthread_cond_t cond_odd = PTHREAD_COND_INITIALIZER;
pthread_cond_t cond_even = PTHREAD_COND_INITIALIZER;
pthread_mutex_t mutex_x = PTHREAD_MUTEX_INITIALIZER;
int kCount = 1;
void * countOdd(void * arg){
for(int i=0; i<100;i++){
pthread_mutex_lock(&mutex_x);
if(kCount < 100){
// 当前kCount是偶数,等待
if((kCoun