mainprocess.c

来自「rgm视频服务器的协议源码」· C语言 代码 · 共 62 行

C
62
字号
/************************************************************************************************************************/
/*         Author: Yves																						*/
/*         TIME: 2007/11																								*/
/************************************************************************************************************************/
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

pthread_mutex_t mutex;
pthread_cond_t  cond; 
int state;
int count;
void * child1(void *arg)
{
        
        while(1){
                printf("thread 1 get running \n");
                pthread_mutex_lock(&mutex));
                pthread_cond_signal(&cond);
                printf("thread 1 signal\n");
				count=count+1;
                printf("count is %d \n",count);
				pthread_mutex_unlock(&mutex);
                sleep(5);
                }
        
}

void *child2(void *arg)
{
        while(1){
                printf("thread 2 get running \n");
                pthread_mutex_lock(&mutex));
                pthread_cond_signal(&cond);
                printf("thread 2 signal\n");
				count=count+2; 
				printf("count is %d \n",count);
                pthread_mutex_unlock(&mutex);
                sleep(5);
                }  
}

int main(void)
{
        int tid1,tid2;
		count=0;
        printf("hello, condition variable test\n");
        pthread_mutex_init(&mutex,NULL);
        pthread_cond_init(&cond,NULL);
        pthread_create(&tid1,NULL,child1,NULL);
        pthread_create(&tid2,NULL,child2,NULL);
        do{
            sleep(2); 
            pthread_mutex_lock(&mutex));
            pthread_cond_wait(&cond,&mutex);
            pthread_mutex_unlock(&mutex);
          }while(1);  
        sleep(100);
        pthread_exit(0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?