S*******e 发帖数: 379 | 1 在C++里是不是就用两个semaphore?
Semaphore size = 0;
semaphore mutex = 1;
void push(T d){
mutex.P();
push(d);
mutex.V();
size.V()
}
T pop() {
size.P();
mutex.P();
T d = pop();
mutex.V();
return d;
} |
S*******e 发帖数: 379 | 2 顶一下..
【在 S*******e 的大作中提到】 : 在C++里是不是就用两个semaphore? : Semaphore size = 0; : semaphore mutex = 1; : void push(T d){ : mutex.P(); : push(d); : mutex.V(); : size.V() : } : T pop() {
|
t****t 发帖数: 6806 | 3 你题都没说清楚(单个还是多个consumer/producer?什么policy?)顶有什么用...
【在 S*******e 的大作中提到】 : 在C++里是不是就用两个semaphore? : Semaphore size = 0; : semaphore mutex = 1; : void push(T d){ : mutex.P(); : push(d); : mutex.V(); : size.V() : } : T pop() {
|
S*******e 发帖数: 379 | 4 哦,我也就是在glassdoor上看到一个简单的描述,
不过应该是要求threadsafe,consumer/producer都可以是多个。
policy应该是blocking if queue is empty。
还不清楚吗?
【在 t****t 的大作中提到】 : 你题都没说清楚(单个还是多个consumer/producer?什么policy?)顶有什么用...
|