import java.util.concurrent.Semaphore;/**使用Semaphore实现线程的交替执行打印 A1B2...Semaphore 基于AQS(内部维护了一个队列)可以用于限流 最多允许多少线程同时运行可以有很多个线程  但同时允许运行的线程有限制2个 new Semaphore(2)
*/
public class T11_TestSemaphore_A1B2 {public static void main(String[] args) {//允许一个线程同时执行// Semaphore s = new Semaphore(1);// 允许两个纤程同时执行Semaphore s = new Semaphore(2);//2 同时允许两个线程运行  true 公平与否 默认非公平// Semaphore s = new Semaphore(2, true);new Thread(()->{try {s.acquire();//获得许可 一共就2个许可char[] chs = {'A','B','C','D','E'};for (int i=0; i<chs.length; i++) {System.out.println(chs[i]);Thread.sleep(200);}} catch (InterruptedException e) {e.printStackTrace();} finally {s.release();}}).start();new Thread(()->{try {s.acquire();int[] ints = {1,2,3,4,5};for (int i=0; i<ints.length; i++) {System.out.println(ints[i]);Thread.sleep(200);}} catch (InterruptedException e) {e.printStackTrace();} finally {s.release();}}).start();}
}

【完整代码】使用Semaphore实现线程的交替执行打印 A1B2C3D4E5相关推荐

  1. 两个线程如何交替执行,一个输出偶数一个输出奇数?

    楼主今天在面经上看到这个题,挺有意思,小小的题目对多线程的考量还挺多.大部分同学都会使用 synchronized 来实现. 楼主今天带来另外两种优化实现,让你面试的时候,傲视群雄! synchron ...

  2. 【java】两个线程如何交替执行,一个输出偶数一个输出奇数?

    楼主今天在面经上看到这个题,挺有意思,小小的题目对多线程的考量还挺多.大部分同学都会使用 synchronized 来实现. 楼主今天带来另外两种优化实现,让你面试的时候,傲视群雄! synchron ...

  3. Java-JUC(十):线程按序交替执行

    问题: 有a.b.c三个线程,使得它们按照abc依次执行10次. 实现: package com.dx.juc.test;import java.util.concurrent.locks.Condi ...

  4. 【Android 异步操作】线程池 ( 线程池使用示例 | 自定义线程池使用流程 | 自定义任务拒绝处理策略 | 完整代码示例 )

    文章目录 一.自定义线程池使用流程 二.自定义任务拒绝处理策略 三.完整代码示例 在博客 [Android 异步操作]线程池 ( 线程池简介 | 线程池初始化方法 | 线程池种类 | AsyncTas ...

  5. 用Python让蔡徐坤在我的命令行里打篮球!|附完整代码

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 来源 | 01二进制(ID:gh_d1999add1857) 编辑 | Jane [导语]作者自称是一个 ...

  6. 【Groovy】使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 服务器客户端完整代码示例 | 运行服务器端与客户端效果及过程分析 )

    文章目录 一.服务器端完整代码 Server.groovy 二.客户端完整代码 Client.groovy 三.运行服务器端与客户端效果及过程分析 一.服务器端完整代码 Server.groovy 参 ...

  7. 【EventBus】事件通信框架 ( 总结 | 手写事件通信框架完整代码示例 | 测试上述框架 )

    文章目录 一.消息中心 二.订阅方法时的注解 三.订阅方法封装 四.订阅对象-方法封装 五.线程模式 六.Activity 中测试上述框架 七.博客源码 一.消息中心 该消息中心是事件通信框架的核心代 ...

  8. 加载svr模型_机器学习XGBoost实战,网格搜索自动调参,对比随机森林,线性回归,SVR【完整代码(含注释)+数据集见原文链接】...

    建议:阅读2020.8.7的文章,完全了解GDBT和XGBT的原理. 机器学习- XGBoost,GDBT[过程:决策树,集成学习,随机森林,GDBT,XGBT,LightGBM] 本次实践内容: 数 ...

  9. 车辆入库java程序_java扫描入库及出库,基于谷歌类开发.仅提供完整代码 连接SQL使用,...

    java扫描入库及出库,基于谷歌类开发.仅提供完整代码 连接SQL使用,需要自行制作中心服务器,中心服务器代码在本人另一实例里面,请自行下载 [实例简介] 扫描入库及出库,基于谷歌类开发.仅提供完整代 ...

最新文章

  1. CALayer-层的属性
  2. frps与frpc的区别
  3. 2021年11月软考准考证打印时间及操作步骤
  4. VMWare共享文件
  5. 新书《编写可测试的JavaScript代码 》出版,感谢支持
  6. 数据源管理 | 关系型分库分表,列式库分布式计算
  7. python @符号_Python金三角!python初学者很难绕过的坑,附教程资料
  8. 赛锐信息:SAP ABAP 环境
  9. 如何将常规元组或字典转换为 namedtuple
  10. 使用脚本控制网页Table的显示隐藏(全代码)_AX
  11. verilog赋多位值_Verilog入门学习笔记——第一弹
  12. C4D模型工具—恢复平滑着色(Phong)
  13. 淘宝开放平台接口接口,订单R2权限接口淘宝开放平台R2权限,淘宝开放平台进存销应用,top平台接口,淘宝应用市场接口,ERP软件订单接口,淘上淘接口,
  14. 抑郁症自测量表测试软件,科学网-抑郁症自测量表(SDS)-李侠的博文
  15. 【云驻共创】初探数通网络开放可编程
  16. 零基础学python_03_字符串(拼接+换行+制表符)
  17. 未来教育计算机三级数据库演示大题,2019年计算机三级数据库考试强化试题及答案003...
  18. Qt使用QCustomPlot画坐标图教程
  19. 模电学习第三天--三极管梳理
  20. 基于大连理工大学的情感词汇表的中文情感分析

热门文章

  1. 【CV】语义分割:最简单的代码实现!
  2. 【机器学习】深度盘点:详细介绍 Python 中的 7 种交叉验证方法!
  3. 【Python基础】Python字典详解-超级完整版
  4. 【Python基础】高效的10个Pandas函数,你都用过吗?
  5. 那些年做的学术公益-你不是一个人在战斗
  6. 深度学习主机环境配置: Win10+Nvidia GTX 1080i+CUDA8.0+CUDDN6
  7. 网易云信携手“瑶台”,打造元宇宙商业化实践标杆案例
  8. 冲刺第八天 12.4 TUE
  9. 【重磅】央行发大招!最全面的支付安全风险大检查来了……
  10. Python实现命令行监控北京实时公交之一