這個就不多說了,直接上**:
#include
#include
using
namespace
std;
const
unsigned
short
size_of_buffer = 10;
//緩衝區長度
unsigned short
productid = 0;
//產品號
unsigned short
consumeid = 0;
//將被消耗的產品號
unsigned short
in = 0;
//產品進緩衝區時的緩衝區下標
unsigned short
out = 0;
//產品出緩衝區時的緩衝區下標
intg_buffer[size_of_buffer];
//緩衝區是個迴圈佇列
critical_section g_cs; //用於執行緒間的互斥
handle
g_hfullsemaphore;
//當緩衝區滿時迫使生產者等待
handle
g_hemptysemaphore;
//當緩衝區空時迫使消費者等待
dword
winapi producer(
lpvoid
);
//生產者執行緒
dword
winapi consumer(
lpvoid
);
//消費者執行緒
intmain()
//建立消費者執行緒
for( i=0; i < consumers_count; ++i)
sleep(100000);
deletecriticalsection(&g_cs);
return
0;
}
//生產乙個產品。簡單模擬了一下,僅輸出新產品的id號
void
produce()
//把新生產的產品放入緩衝區
void
}
//從緩衝區中取出乙個產品
void
take()
}
//消耗乙個產品
void
consume()
//生產者
dword
winapi producer(
lpvoid
lppara)
return
0;
}
//消費者
dword
winapi consumer(
lpvoid
lppara)
return
0;
}
Linux多執行緒 生產者消費者
生產者消費者問題 這是乙個非常經典的多執行緒題目,題目大意如下 有乙個生產者在生產產品,這些產品將提供給若干個消費者去消費,為了使生產者和消費者能併發執行,在兩者之間設定乙個有多個緩衝區的緩衝池,生產者將它生產的產品放入乙個緩衝區中,消費者可以從緩衝區中取走產品進行消費,所有生產者和消費者都是非同步...
多執行緒 生產者消費者佇列
就以alibaba的筆試題舉例吧。題目大概的意思如下 有乙個籃子,最多容納5個蘋果。有人一直往裡放蘋果。有人一直去蘋果。寫出實現。ali要求不能用concurrent包裡面的東西,所以只能用最簡單的notify和wait。如果可以用concurrent包裡面的東西,還可以用blockingqueue...
多執行緒 生產者和消費者
生產者 消費者問題 生產者向產品區里放產品,當產品區里滿了,需要等待 消費者從產品區里取產品消耗,當產品區里空了,需要等待。public class producerandconsumer 消費者 static class consumer implements runnable catch int...