第一次编译linux下的非helloword代码==

  其实就是书上简单的多线程生产者-消费者模型

include <stdio.h>
#include <pthread.h>
#define MAX 1000
pthread_mutex_t the_mutex;
pthread_cond_t condc,condp;
int buffer=0;

void* producer(void* ptr)
{
        int i;
        for(i=1;i<=MAX;i++)
        {
                pthread_mutex_lock(&the_mutex);
                while(buffer!=0) pthread_cond_wait(&condp,&the_mutex);
                buffer=i;
                printf("%d product has been product.
",buffer);
                pthread_cond_signal(&condc);
                pthread_mutex_unlock(&the_mutex);
        }
        pthread_exit(0);
}

void* consummer(void* ptr)
{
        int i;
        for(i=1;i<=MAX;i++)
        {
            pthread_mutex_lock(&the_mutex);
                while(buffer==0) pthread_cond_wait(&condc,&the_mutex);
                buffer=0;
                printf("product has been consume.
");
                pthread_cond_signal(&condp);
                pthread_mutex_unlock(&the_mutex);
        }
        pthread_exit(0);
}

int main(int argc,char** argv)
{
        pthread_t pro,con;
        pthread_cond_init(&condc,0);
        pthread_cond_init(&condp,0);
        pthread_create(&con,0,consummer,0);
        pthread_create(&pro,0,producer,0);
        pthread_join(pro,0);
        pthread_join(con,0);
        pthread_cond_destroy(&condc);
        pthread_cond_destroy(&condp);
        pthread_mutex_destroy(&the_mutex);
}

结果如下:

原文地址:https://www.cnblogs.com/manch1n/p/10317440.html