读书人

Linux编程-多线程、同步跟互斥(转载)

发布时间: 2012-08-27 21:21:56 作者: rapoo

Linux编程-多线程、同步和互斥(转载)

http://www.cnblogs.com/skynet/archive/2010/10/30/1865267.html

#include <stdio.h>#include <stdlib.h>#include <pthread.h>int g_Flag=0;static pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;static pthread_cond_t cond=PTHREAD_COND_INITIALIZER;void * thread1(void *arg){printf("%s\n","this is thread1");pthread_mutex_lock(&mutex);if(g_Flag==2)pthread_cond_signal(&cond);g_Flag=1;pthread_mutex_unlock(&mutex);pthread_join(*(pthread_t*)arg,NULL);printf("%s\n","exit thread1");pthread_exit(0);}void *thread2(void *arg){printf("%s\n","this is thread2");pthread_mutex_lock(&mutex);if(g_Flag==1)pthread_cond_signal(&cond);g_Flag=2;pthread_mutex_unlock(&mutex);printf("%s\n","exit thread2");pthread_exit(0);}int main(){pthread_t tid1, tid2;int rc1=0,rc2=0;rc2=pthread_create(&tid2,NULL,thread2,NULL);if(rc2!=0)printf("thread2 error.\n");rc1=pthread_create(&tid1,NULL,thread1,&tid2);if(rc1!=0)printf("thread1 error.\n");pthread_cond_wait(&cond, &mutex);return 0;}
?

读书人网 >编程

热点推荐