原来直接用信号量就好了

#include <semaphore.h>class Foo {protected:sem_t firstJobDone;sem_t secondJobDone;public:Foo() {sem_init(&firstJobDone, 0, 0);sem_init(&secondJobDone, 0, 0);}void first(function<void()> printFirst) {// printFirst() outputs "first".printFirst();sem_post(&firstJobDone);}void second(function<void()> printSecond) {sem_wait(&firstJobDone);// printSecond() outputs "second".printSecond();sem_post(&secondJobDone);}void third(function<void()> printThird) {sem_wait(&secondJobDone);// printThird() outputs "third".printThird();}
};作者:LeetCode
链接:https://leetcode-cn.com/problems/print-in-order/solution/an-xu-da-yin-by-leetcode/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2022-4-8 Leetcode 1114.按顺序打印相关推荐

  1. LeetCode 1114. Print in Order--Java解法--并发问题

    此文首发于我的个人博客:LeetCode 1114. Print in Order–Java解法–并发问题 - zhang0peter的个人博客 LeetCode题解专栏:LeetCode题解 Lee ...

  2. (剑指Offer)面试题61:按之字形顺序打印二叉树

    题目: 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 思路: 按照广度优先遍历来遍历二叉树,但是需要 ...

  3. 常见的面试算法题:创建几个线程按顺序打印数字或者字母(多线程编程)(套用该模板即可)

    常见的面试算法题:创建几个线程按顺序打印数字或者字母(多线程编程)(套用该模板即可) 比较典型的题目,如下有: 题目一: 1.启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程 ...

  4. 【编程题目】输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印...

    第 16 题(树): 题目(微软): 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印. 例如输入 8 / \ 6 10 / \ / \ 5 7 9 11 输出 8 6 1 ...

  5. [剑指Offer] 59.按之字形顺序打印二叉树

    题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. [思路]先按层次遍历存入,通过设立标志位,将 ...

  6. 剑指Offer(Java实现)按之字形顺序打印二叉树

    题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 解题思路 方法一:利用两个栈的辅助空间分别存 ...

  7. 《剑指offer》-- 二叉树的下一个结点、对称二叉树、按之字性顺序打印二叉树、把二叉树打印成多行

    一.二叉树的下一个结点: 1.题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 2.解题思路: 分析二叉树 ...

  8. 按之字形顺序打印二叉树

    题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 此道题目可以跟  把二叉树打印成多行:htt ...

  9. 剑指offer-按之字形顺序打印二叉树

    题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 使用双向链表,先把当前行按顺序打印,再取出当 ...

最新文章

  1. swift_039(Swift中的KVC的使用方法)
  2. 不小心删除了某个包的一部分,重新安装方法
  3. Android 动画 介绍与使用
  4. 如何使用SAP Cloud for Customer里的ABSL代码调用Web service
  5. Linux 多用户和多用户边界
  6. 为什么我的文章总是没人回复
  7. 检测文件是否有BOM 头,并删除BOM头(php)
  8. 手机日期插件jquery mobiscroll 实例
  9. 基于Spring的包含特定注解bean的package扫描工具
  10. Spring+SpringMVC+Mybatis 详细配置
  11. CAD安装失败Failed Installation aborted, Result=1603
  12. 大数据技术成功案例和趋势 2021-25
  13. 常用公差配合表图_车间里常用的测量器具,别说没见过!
  14. pycharm 安装pip 详细步骤
  15. 如何隐藏或显示 计算机 桌面图标,如何隐藏电脑桌面图标或文件
  16. php seek_cur,Golang中seek使用方法详解
  17. NodeJS 初学之安装配置环境
  18. MapReduce的执行流程
  19. canvas实现简单的刮刮乐功能
  20. 39.html5的动画(animation)

热门文章

  1. Android屏蔽HOME键亲测可用
  2. A Novel Neural Source Code Representation based on Abstract Syntax Tree--ICSE2019
  3. 国家统计标准(包括行政区划、行业类别等实用信息)
  4. 帕金森定律[来自百度]
  5. HBuilder-简易仿制网页
  6. Jmeter接口测试之图片上传
  7. Word控件Spire.Doc 【段落处理】教程(四):如何在 C#、VB.NET 中设置 Word 项目符号样式
  8. Vue: wangEditor 编辑器使用示例
  9. Patching more than once will result in the union of all True param eters being patched monkey.pat
  10. batch size对训练的影响