c++多線程互斥鎖打印AABB

#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

結果: 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章