#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<pthread.h>
#define COUNT 10
static int i = 1;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
void* funA(void *arg)
{int i=0;
while(i<4)
{
pthread_mutex_lock(&mutex);
printf("A");
fflush(stdout);
printf("A");
fflush(stdout);
pthread_mutex_unlock(&mutex);
sleep(2);
i++;
}
}
void* funB(void *arg)
{
int i=0;
while(i<4)
{
pthread_mutex_lock(&mutex);
printf("B");
fflush(stdout);
printf("B");
fflush(stdout);
pthread_mutex_unlock(&mutex);
sleep(2);
i++;
}
}
int main()
{
pthread_t tid1, tid2;
pthread_create(&tid1, NULL, funA, NULL);
pthread_create(&tid2, NULL, funB, NULL);
pthread_join(tid1, NULL);
pthread_join(tid2, NULL);
printf("\n");
return 0;
}
编译:g++ -o aa aa.cpp -lpthread
结果: