当前位置: 首页 > article >正文

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;
};

运行结果

在这里插入图片描述
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!


http://www.kler.cn/a/350600.html

相关文章:

  • 渗透笔记1
  • 嵌入式硬件篇---基本组合逻辑电路
  • 万字长文介绍ARINC 653,以及在综合模块化航空电子设备(IMA)中的作用
  • 1.6 从 GPT-1 到 GPT-3.5:一路的风云变幻
  • 设计模式-单例模式
  • 基于微信小程序的电子点菜系统设计与实现(KLW+源码+讲解)
  • 从零开始:使用 Flask 或 Django 构建 RESTful API
  • 踩坑日记:线上接口超时问题排查
  • 程序员如何使用AI工具进行设计开发?
  • ES操作指南
  • 【MySQL】滑动窗口函数详解
  • PostgreSQL Windows系统初始化、登录、创建用户及数据库
  • CRMEB标准版Mysql修改sql_mode
  • java的数据类型
  • C++:类和对象1
  • uni-app的界面通讯思维导图
  • 64页精品PPT | 汽车经销商数据应用解决方案
  • 你存在,在我们的攻击画像里
  • Spring Boot:中小型医院网站的敏捷开发
  • 模拟退火算法最常见知识点详解与原理简介控制策略
  • VsCode环境配置C++环境
  • 基于SpringBoot的“社区医院管理服务系统”的设计与实现(源码+数据库+文档+PPT)
  • 高质量SCI论文撰写及投稿丨论文选题、文献调研、实验设计、数据分析、论文结构及语言规范等----AI强大功能
  • 抖音解压视频素材宝库
  • YOLO11 实例分割 | 自动标注 | 预标注 | 标签格式转换 | 手动校正标签
  • 如何使用 Git Cherry-Pick 和 Reset 处理误提交,并确保安全回滚