linux环境下实现“多线程同步方法解决生产者和消费者问题”
用g++编译时报错:undefined or invalid # directive 'include',请帮忙看看是怎么回事,谢谢。
部分代码如下:
#include <iostream.h>
#include <pthread.h>
#include <stdio.h>
using namespace std;
const unsigned short SIZE_OF_BUFFER = 20;//有界缓冲区长度
typedef struct{
char g_buffer[SIZE_OF_BUFFER];
int occupied;
int nextin;
int nextout;
mutex_t mutex;
cond_t more;
cond_t less;
}buffer_t;
buffer_t buffer;
unsigned short ProductID = 0;//新生产出来的产品的产品号
unsigned short ConsumeID = 0;//被消耗的产品的产品号
unsigned short in = 0;//产品进缓冲区时的缓冲区下标,用于记录生产者的指针位置
unsigned short out = 0;//产品出缓冲区时的缓冲区下标,用于记录消费者的指针位置
bool g_continue = 1;//控制程序运行:1表示继续运行,0表示停止运行
void producer(buffer_t *b,char item);
char consumer(buffer_t *b);
const unsigned short PRODUCERS_COUNT=4;//生产者的个数
const unsigned short CONSUMERS_COUNT=3;//消费者的个数
const unsigned short THREADS_COUNT=PRODUCERS_COUNT+CONSUMERS_COUNT;//总线程数
HANDLE hThreads[PRODUCERS_COUNT];//各线程的handle
DWORD producerID[CONSUMERS_COUNT];//生产者线程的标识符
DWORD consumerID[THREADS_COUNT];//消费者线程的标识符
.................
................
............... |