首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-08-27 
Linux编程-多线程、同步和互斥(转载)http://www.cnblogs.com/skynet/archive/2010/10/30/1865267.html#incl

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;}
?

热点排行