leetcode 打印_leetcode多线程之按序打印
序
本文主要记录一下leetcode多线程之按序打印
题目
我们提供了一个类:public class Foo { public void first() { print("first"); } public void second() { print("second"); } public void third() { print("third"); }}三个不同的线程将会共用一个 Foo 实例。 线程 A 将会调用 first() 方法 线程 B 将会调用 second() 方法 线程 C 将会调用 third() 方法请设计修改程序,以确保 second() 方法在 first() 方法之后被执行,third() 方法在 second() 方法之后被执行。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/print-in-order著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
使用juc包的CountDownLatch
class Foo { CountDownLatch second = new CountDownLatch(1); CountDownLatch third = new CountDownLatch(1); public Foo() { } public void first(Runnable printFirst) throws InterruptedException { printFirst.run(); second.countDown(); } public void second(Runnable printSecond) throws InterruptedException { second.await(); printSecond.run(); third.countDown(); } public void third(Runnable printThird) throws InterruptedException { third.await(); printThird.run(); }}
小结
这里是固定要按first先执行,而后second,再third方法,这里使用了CountDownLatch,比起object的wait notify之类用起来简单一点
doc
- print-in-order
leetcode 打印_leetcode多线程之按序打印相关推荐
- LeetCode 多线程 1114. 按序打印
1114. 按序打印 Ideas 并发执行问题是多线程要解决的经典问题,此题是典型的执行屏障问题,因此我们需要构造几把锁来确保执行顺序. 题目要求按顺序依次执行三个方法,为了保证线程的执行顺序,可以在 ...
- (多线程)leetcode1114. 按序打印 认识AtomicInteger
我们提供了一个类: public class Foo { public void one() { print("one"); } public void two() { p ...
- 1114. 按序打印
1114. 按序打印 我们提供了一个类: public class Foo { public void first() { print("first"); } public voi ...
- 多线程和单线程 打印数字到100000 的速度对比
import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.Executors; import java.u ...
- 【LeetCode】剑指 Offer 17. 打印从1到最大的n位数
[LeetCode]剑指 Offer 17. 打印从1到最大的n位数 文章目录 [LeetCode]剑指 Offer 17. 打印从1到最大的n位数 一.大数 一.大数 将 1~9 加入队列 对队列中 ...
- 【多线程】给三个字母a、l、i,采用多线程的方式打印alialialiali。。。
目录 1. 题目 2. 解析 1. 使用ReetrankLock和Condition 1. 思路 2. 代码实现 3. 控制台 2. 使用synchronized和AtomicInteger配合 1. ...
- 多线程:Java两个线程,一个打印A-Z,另一个打印1-26,输出结果:A1 B2 C3 ...... Z26
最近看到一个题,很有意思,就是在Java里实现两个线程,一个线程打印字母,也就是 ABCD - Z,另一个线程打印数字,也就是 1234 - 26.但是这两个线程需要交替打印:第一次字母线程先打印A, ...
- java多线程交替打印_java多线程 更优雅的实现线程同步:交替打印A、B LockSupport实现...
一 问题概述 线程或者进程之间有两种关系 同步和互斥,我们通常实现同步方法是使用线程的等待唤醒机制,而等待唤醒机制的使用是建立在互斥的继承上的.但是同步线程并不一定是必须要实现互斥的.比如一个线程打印 ...
- C#LeetCode刷题-多线程
本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-多线程 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode多线程类算法题汇总. ...
- LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
目录 1114. 按序打印 解法 1115. 交替打印FooBar 解法 1116. 打印零与奇偶数 解法 1117. H2O 生成 解法 1118. 设计有限阻塞队列 解法 1195. 交替打印字符 ...
最新文章
- 如何提高服务器响应的数据速度_如何提高攻牙速度
- 可执行SQL文的mybatis工具类
- digitalocean如何还原出厂设置
- maven的pom报plugins错误的解决方法.
- sql中exists替换in的区别
- mysql业务 日志_mysql笔记之日志篇
- 路考步骤七步走 科目三考试一定没问题!
- 什么是MES?与ERP有什么区别呢?
- 多模态 | 复旦推出跨视觉语言模态预训练模型,并达到SOTA
- 关于transmission下载速度提升的小建议
- 正则应用之——日期正则表达式
- powerbi导入地图_PowerBI 地图 - 层级下钻形状地图最佳实践
- 计算机实验三—CPT
- 苹果app老是显示无法连接服务器失败原因,iphone无法连接到app store服务器出错怎么办...
- 输入空间、输出空间、特征空间与假设空间的区分
- 思科ccie网络工程师一定要里了解的网络拥塞及拥塞控制技术
- InstallShield打包源码公布
- 孔雀优化算法(Peafowl (Pavo Muticus/Cristatus) Optimization Algorithm, POA)
- 通信中间件DDS介绍(一)
- 微软服务器搭建ngrok,ngrok搭建(Windows服务端+Windows客户端)
热门文章
- 【静脉检测】基于matlab手指静脉图像检测【含Matlab源码 1654期】
- 【物理应用】基于Matlab GUI超声场可视化仿真模拟【含Matlab源码 1494期】
- 【月径流预测】基于matlab未来搜索算法算法优化BP神经网络月径流预测【含Matlab源码 2001期】
- 【混凝土强度预测】基于matlab BP神经网络混凝土强度预测【含Matlab源码 695期】
- 【游戏】基于 matlab GUI lanchester作战模拟设计【含Matlab源码 426期】
- linux搭建vsftp服务器_Linux(CentOS 7)搭建VSFTP服务器
- 人工智能时代的危机_AI信任危机:如何前进
- 四种依恋类型_你们之间的爱情是哪种类型 | 爱情依恋关系测评
- 例2.11 FatMouse' Trade - 九度教程第21题(贪心算法)
- 计算机显示桌面的按钮,如何找回Windows“显示桌面”按钮 -电脑资料