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

Leetcode—1115. 交替打印 FooBar【中等】(多线程)

2024每日刷题(180)

Leetcode—1115. 交替打印 FooBar

在这里插入图片描述

C++实现代码

class FooBar {
private:
    int n;
    sem_t fooSem;
    sem_t barSem;

public:
    FooBar(int n) {
        this->n = n;
        sem_init(&fooSem, 0, 1);
        sem_init(&barSem, 0, 0);
    }

    ~FooBar() {
        sem_destroy(&fooSem);
        sem_destroy(&barSem);
    }

    void foo(function<void()> printFoo) {
        
        for (int i = 0; i < n; i++) {
            sem_wait(&fooSem);
        	// printFoo() outputs "foo". Do not change or remove this line.
        	printFoo();
            sem_post(&barSem);
        }
    }

    void bar(function<void()> printBar) {
        
        for (int i = 0; i < n; i++) {
            sem_wait(&barSem);
        	// printBar() outputs "bar". Do not change or remove this line.
        	printBar();
            sem_post(&fooSem);
        }
    }
};

运行结果

在这里插入图片描述

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


http://www.kler.cn/news/353195.html

相关文章:

  • Docker部署MySQL主从复制
  • Linux中如何理解一切皆文件
  • 安全光幕的工作原理及应用场景
  • 【Jmeter】jmeter指定jdk版本启动
  • 力扣困难题汇总(16道)
  • MATLAB智能算法 - Immunity Algorithm免疫算法
  • 代码随想录打卡Day 长度最小的子数组209 螺旋矩阵2 59
  • JavaWeb环境下Spring Boot在线考试系统的优化策略
  • Prometheus运维监控平台之服务发现配置、标签及监控规则编写(二)
  • 【Redis】CentOS 7 环境搭建 redis 最新版 7.4 分布式集群完整版详解
  • YOLO11改进 | 注意力机制 | 添加GAM注意力机制 【完整代码】
  • Frequency-Adaptive Dilated Convolution for Semantic Segmentation
  • 大数据面试题整理——Yarn
  • 【K8S系列】Kubernetes pod节点Pending或CrashLoopBackOff 问题及解决方案详解【已解决】
  • 浏览器安装Vue开发者工具
  • 面向对象编程关系:组合Composition和聚合Aggregation
  • 吴恩达深度学习笔记(5)
  • 前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信
  • 如何在UE5中创建加载屏幕(开场动画)?
  • mac上docker desktop 服务指南
  • 【C++刷题】力扣-#163-缺失的区间
  • 拟声 0.37.0 | 拟物风格,超级优美,功能丰富
  • 机器学习——解释性AI
  • java脚手架系列4--测试用例、拦截器
  • AI 驱动的测试用例生成:实现全量覆盖
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——13.mapset(无习题)