java线程池,信号量使用demo

直接上代码

package org.jimmy.threadtest20181121;import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;public class TestThread20181128 {public Semaphore semaphore = new Semaphore(2, true);public static void main(String[] args) {try {TestThread20181128 testThread20181128 = new TestThread20181128();LinkedBlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<Runnable>();ThreadPoolExecutor201811281311 executor = new ThreadPoolExecutor201811281311(2, 10000, 3600, TimeUnit.SECONDS, workQueue);for(int i = 0 ; i < 10; i++) {String id = i + "";Thread thread = new Thread(testThread20181128.new LineUpThread(id));executor.submit(thread);}executor.shutdown();} catch(Exception e) {e.printStackTrace();}}class LineUpThread implements Runnable {private String id;public LineUpThread(String id) {this.id = id;}@Overridepublic void run() {try {if(semaphore.availablePermits() > 0){System.out.println("开始排队");}semaphore.acquire();System.out.println("轮到编号" + id + "的客户了,可以开始购票了!");System.out.println("编号" + id + "的客户已购票成功!");semaphore.release();} catch(Exception e) {e.printStackTrace();}}}}

运行结果:

 

 

转载于:https://www.cnblogs.com/JimmySeraph/p/10031776.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring JDBC最佳实践(2)

2019独角兽企业重金招聘Python工程师标准>>> 使用DataSourceUtils进行Connection的管理 由上节代码可知&#xff0c;JdbcTemplate在获取Connection的时候&#xff0c;并不是直接调用DataSource的getConnection(),而是调用了如下的代码&#xff1a; Connection con …

我所感受到的上海

大家好&#xff0c;文章转自张老师的公众号&#xff0c;文章的我不是小编本人&#xff0c;小编现居深圳&#xff0c;刚接受了一场大雨的洗礼。前两天公众号抽奖的书籍已经发货&#xff0c;中奖的朋友们注意查收。当格蠹园里的大灰反复犹豫到底应该在哪里生产的时候&#xff0c;…

设计模式学习笔记五——Prototype模式

动机&#xff1a;使用原型实例指定创建对象的种类&#xff0c;然后通过拷贝这些原型来创建新的对象。某些结构复杂对象面临着剧烈变化&#xff0c;但拥有比较稳定一致的接口&#xff0c;如何隔离出这些易变对象&#xff0c;使客户程序不随之改变&#xff1f;场景&#xff1a;Th…

2011年最佳代码

2019独角兽企业重金招聘Python工程师标准>>> 2011年最佳代码 try { if(you.bevieve(it) true || you.believe(it) false) { I.believe(it); } } catch(Exception ex) { throw new Exception("Its a miracle!"); } finally { it.justHappened(); } 转载于…

昨晚两点睡

深圳下雨两天&#xff0c;我们居家办公两天&#xff0c;不过奇怪的事情是&#xff0c;这两天我都到公司上班&#xff0c;昨天早上没有下雨&#xff0c;我想着应该要去公司&#xff0c;结果到了公司才知道原来今天可以居家办公。不过&#xff0c;在公司才有上班的感觉&#xff0…

hashmap详解

一.hashmap的数据结构 HashMap采取数组加链表的存储方式(哈希表)来实现。亦即数组&#xff08;散列桶&#xff09;中的每一个元素都是链表 二.hashmap的构造函数 HashMap()&#xff1a;构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。 HashMap(int initia…

书籍推荐-记这几年看的书

这几年看了不少书&#xff0c;大部分是自掏腰包&#xff0c;看一本好书是享受&#xff0c;我很喜欢这种感觉。 这些是我这几年看书的一些心得&#xff0c;对于一些新手来说&#xff0c;可能有点帮助。 这几年一直在走技术路线&#xff0c;所以看的大部分都是技术方面的书籍&…

不复位MCU直接调试运行程序,让bug闻风丧胆

大家周末好呀&#xff0c;文章转自bug菌的公众号&#xff0c;文章介绍步复位情况下调试bug&#xff0c;希望对大家有用。1调试窘境经常有朋友在开发中遇到这样的窘境&#xff0c;当单片机程序运行异常以后&#xff0c;由于调试信息做得并不是很全面&#xff0c;导致相应的问题场…

这次比opencv快⑥倍!!!

打败opencv ,哦&#xff0c;是快了3倍上回书说道&#xff0c;我用汇编neon实现去畸变算法比opencv快3倍&#xff0c;这都不算啥&#xff0c;这次新增了透视变换算法&#xff0c;二者加起来比opencv快6倍&#xff01;拭目以待吧。啥玩意是透视变换&#xff1f;相信你们都开过高级…

数据和数据类型

一、什么是数据&#xff1a; 数据(date)是事实或观察的结果&#xff0c;是对客观事物的逻辑归纳&#xff0c;是用于表示客观事物的未加工的原始素材。 1&#xff09;数据是信息的表现形式和载体&#xff0c;可以是符号、文字、数字、语音、图像、视频等。数据和信息是不可分离…

涂鸦的这套宠物SDK设计,真香

我应该在之前的文章里面说过&#xff0c;我之前创业的时候做过宠物方面的产品&#xff0c;而且我们当时用的是乐鑫的芯片。最近知道在涂鸦工作的朋友也在研究这方面&#xff0c;他给我寄了几个小板子&#xff0c;还有涂鸦的IOT SDK&#xff0c;我玩了几天&#xff0c;觉得真的很…

准备 KVM 实验环境 - 每天5分钟玩转 OpenStack(3)

转载&#xff1a;http://cloudman.blog.51cto.com/10425448/1747415 KVM 是 OpenStack 使用最广泛的 Hypervisor&#xff0c;本节介绍如何搭建 KVM 实验环境 安装 KVM 上一节说了&#xff0c;KVM 是 2 型虚拟化&#xff0c;是运行在操作系统之上的&#xff0c;所以我们先要装一…

电子美图高清系列漫画分享给大家欣赏!

电子漫画搞电子的大家或多或少都会收集了电子漫画和表情到&#xff0c;小编找了一份比较全高清无码的电子美图漫画&#xff0c;供大家欣赏&#xff0c;提供下面三种下载方式&#xff01;1、GitHub&#xff1a;https://github.com/chiphome/Electronic-Comics2、Gitee&#xff1…

如何提高网页中图片显示的用户体验(附源码下载)

文章中加入适量的图片不仅可以更好的说明和补充文章的内容&#xff0c;而且还可以极大的减缓阅读者在阅读较长篇幅文章时的疲劳和不安。所以图文混排较好的文章能给阅读者更好的用户体验和享受。但是令人遗憾的是很多的网页图片的显示并不十分理想&#xff0c;非但没有给阅读者…

全开源最小电压表:24位ADC,测量0~2V,五位半

1、项目背景2015年5月份评估完十几种24位ADC后就从第一份工作岗位上离职了&#xff0c;做的24位AD都没有达到实际的效果&#xff0c;一直耽搁困扰了好久。是硬件设计的问题&#xff1f;还是软件开发的问题&#xff1f;还是24位ADC真的不咋地&#xff1f;还是要离职了干活就不负…

小小Table

图1 图2(加了蓝色&#xff0c;让问题更清楚)说明&#xff1a;1.工作需要要做这样一个图形&#xff08;图1&#xff09;&#xff0c;而且要求不用表(table)套表(table)即一个table画出。2.素材有图表两张:(12*14),(12*13) 颜色为Red感兴趣的朋友…

文件断点续传原理与实现

文件断点续传原理与实现 在网络状况不好的情况下&#xff0c;对于文件的传输&#xff0c;我们希望能够支持可以每次传部分数据。首先从文件传输协议FTP和TFTP开始分析&#xff0c; FTP是基于TCP的&#xff0c;一般情况下建立两个连接&#xff0c;一个负责指令&#xff0c;一个负…

Windows Forms、MFC、WTL、WxWidgets、Qt、GTK综合比较

图形界面库Windows Forms、 MFC、WTL、 WxWidgets、Qt、GTK 综合比较见下表&#xff1a; 总结&#xff1a; GTK主要用在X Window上&#xff0c;整个设计的架构和许多概念和MFC以及一般 Windows 上的程序开发大异其趣&#xff0c;入门门槛较高&#xff0c;而且最主要的特色是&am…

G3,是塔克和阿德巴约的热火队

这一场&#xff0c;是塔克和阿德巴约的热火队G2的比赛&#xff0c;波斯顿人的数据如下G3的比赛&#xff0c;波斯顿人的数据如下如果说田忌赛马可以用在篮球场上&#xff0c;那这场堪称经典热火和波斯顿人的第三场比赛&#xff0c;火队是客场作战&#xff0c;客场作战的热火在第…

微信小程序--数据存储

对本地缓存数据操作分为同步和异步两种。同步方法有成功回调函数&#xff0c;表示数 据处理成功后的操作。下面是小程序提供本地缓存操作接口&#xff1a; 以Sync结尾都是同步方法。同步方法和异步方法的区别是&#xff1a; 同步方法会堵塞当前任务&#xff0c;直到同步方法处理…