利用pthread_mutex_t和thread_cond_t实现多线程交替打印
//Ubuntu下编译命令:g++ test_phread.cpp -lpthread,编译生成a.out后,直接运行。
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#define COUNT 100
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t cond1 = PTHREAD_COND_INITIALIZER;
pthread_cond_t cond2 = PTHREAD_COND_INITIALIZER;
static int loop = 1;
void *fun1(void* arg)
{
while (loop < COUNT) {
pthread_mutex_lock(&mutex);
if (loop%2 != 0) {
printf("1\n");
loop++;
pthread_cond_signal(&cond2);
} else {
pthread_cond_wait(&cond1, &mutex);
}
pthread_mutex_unlock(&mutex);
}
}
void *fun2(void* arg)
{
while (loop < COUNT) {
pthread_mutex_lock(&mutex);
if (loop % 2 == 0) {
printf("2\n");
loop+&#