https://leetcode-cn.com/problems/print-in-order/

解决方案

class Foo {private AtomicInteger jobDone = new AtomicInteger(0);public Foo() {}public void first(Runnable printFirst) throws InterruptedException {// printFirst.run() outputs "first".printFirst.run();// mark the first job as done, by increasing its count.jobDone.incrementAndGet();}public void second(Runnable printSecond) throws InterruptedException {while (jobDone.get() != 1);// waiting for the first job to be done.// printSecond.run() outputs "second". Do not change or remove this line.printSecond.run();jobDone.incrementAndGet();}public void third(Runnable printThird) throws InterruptedException {while (jobDone.get() != 2);// waiting for the first job to be done.// printThird.run() outputs "third". Do not change or remove this line.printThird.run();jobDone.incrementAndGet();}
}

LeetCode 1114 按序打印相关推荐

  1. LeetCode 1114. 按序打印

    我们提供了一个类: public class Foo {public void first() { print("first"); }public void second() { ...

  2. LeetCode 多线程 1114. 按序打印

    1114. 按序打印 Ideas 并发执行问题是多线程要解决的经典问题,此题是典型的执行屏障问题,因此我们需要构造几把锁来确保执行顺序. 题目要求按顺序依次执行三个方法,为了保证线程的执行顺序,可以在 ...

  3. 1114. 按序打印

    1114. 按序打印 我们提供了一个类: public class Foo { public void first() { print("first"); } public voi ...

  4. LeetCode:交替打印【1115】

    LeetCode:交替打印[1115] 题目描述 我们提供一个类: class FooBar { public void foo() {for (int i = 0; i < n; i++) { ...

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

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

  6. 2022-4-8 Leetcode 1114.按顺序打印

    原来直接用信号量就好了 #include <semaphore.h>class Foo {protected:sem_t firstJobDone;sem_t secondJobDone; ...

  7. LeetCode 多线程 1116. 打印零与奇偶数

    1116. 打印零与奇偶数 Ideas 有几个线程就用几个信号量,最先开始的信号量初始化为1,其它初始化为0,然后根据条件判断实现同步. 多线程的问题好多都是:锁自己,解锁别人. Code from ...

  8. leetcode算法题--打印从1到最大的n位数

    原题链接:https://leetcode-cn.com/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof/ vector<int> pr ...

  9. (多线程)leetcode1114. 按序打印 认识AtomicInteger

    我们提供了一个类: public class Foo {   public void one() { print("one"); }   public void two() { p ...

最新文章

  1. Python的零基础超详细讲解(第一天)-Python简介以及下载
  2. 二十、异步调用的问题
  3. 数组 verilog_SystemVerilog语言简介(与Verilog的30点对比)
  4. STM32中C语言知识点:初学者必看,老鸟复习(长文总结)
  5. Windows编程—Windows驱动中定时器的使用
  6. ROS学习笔记7(理解ROS服务和参数)
  7. PL/SQL Developer自动补全SQL技巧
  8. 笔记之_Java整理IO流
  9. xp系统无法自动修复此计算机该怎么解决,WinXP不能正常启动的修复方法
  10. python下载安装图文教程-Pycharm下载安装图文教程
  11. html制作钢铁侠心脏,心脏术后我变成了“钢铁侠”
  12. 敲开脑洞(一),如何摆脱痛苦,记自己的短期修行
  13. 背壳BAKAZU 2013复古邮差风帆布休闲潮男腰包 A801BK 黑色 腰包胸包【图片 价格 品牌 报价】-京东商城...
  14. 平均差误法中存在哪些误差?如何平衡这些误差?|小白心理-312/347考研答疑
  15. tl494组成的超声波发射电路_由TL494构成的恒流闭环控制电路的设计与实现 - 全文...
  16. layui数据表格显示序号
  17. C语言刷题(9):判断一个数是否为质数(素数)
  18. java斜杠_java中对斜杠的处理
  19. android 悬浮窗 播放器,Lua Player
  20. CString 百度百科

热门文章

  1. java1.8的特性,java1.8新特性
  2. python判断点在直线的哪一侧_判断点在直线的哪一侧
  3. python异步编程视频_asyncio异步编程【含视频教程】
  4. 计算机组成原理的基础知识,计算机组成原理:基础知识部分习题解答(学习笔记)...
  5. roobo机器人怎么唱歌_日本“观音”机器人问世,可以陪僧人念佛经
  6. php 精品课程,php51精品课程高级版
  7. devc++源文件未编译_悬赏万元,重现「木兰」编程语言编译器
  8. 360浏览器 ajax取缓存,Angularjs在360兼容模式下取数据缓存问题的解决办法
  9. 十四、爬取天气气温,制作最低气温排行榜
  10. 四十一、深入Java中的 File类