当前位置: 技术问答>linux和unix
多线程通信之producer-consumer 问题
来源: 互联网 发布时间:2016-10-25
本文导语: 首先看下面的多线程间通信程序: #include #include #include #include using namespace std; #include #include #define MAXNITEMS 1000000 #define MAXNTHREADS 100 int nitems; //read-only by...
首先看下面的多线程间通信程序:
#include
#include
#include
#include
using namespace std;
#include
#include
#define MAXNITEMS 1000000
#define MAXNTHREADS 100
int nitems; //read-only by producer and consumer
struct {
pthread_mutex_t mutex; //互斥信号量
int buff[MAXNITEMS];
int nput; //下一个存放元素的下标
int nval; //下一个存放的值
} shared = { PTHREAD_MUTEX_INITIALIZER };
void *produce(void *), *consume(void *);
int
main(int argc, char **argv)
{
int i, nthreads, count[MAXNTHREADS];
pthread_t tid_produce[MAXNTHREADS], tid_consume;
if (argc != 3)
cerr