Leetcode—1188. 设计有限阻塞队列【中等】(多线程)
2024每日刷题(183)
Leetcode—1188. 设计有限阻塞队列
C++实现代码
class BoundedBlockingQueue {
public:
BoundedBlockingQueue(int capacity) {
sem_init(&enSem, 0, capacity);
sem_init(&deSem, 0, 0);
}
~BoundedBlockingQueue() {
sem_destroy(&enSem);
sem_destroy(&deSem);
}
void enqueue(int element) {
sem_wait(&enSem);
q.push(element);
sem_post(&deSem);
}
int dequeue() {
sem_wait(&deSem);
const int num = q.front();
q.pop();
sem_post(&enSem);
return num;
}
int size() {
return q.size();
}
private:
sem_t deSem;
sem_t enSem;
queue<int> q;
};
运行结果
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!