Java实现流控-Semaphore
来源:互联网 发布:数控机床编程技术 编辑:程序博客网 时间:2024/06/10 01:45
网上类似文章很多,不多说,直接上代码:
/** * 流控类(Semaphore实现) * * @author ln * */public class FlowControl {/** * 最大访问量 */private static final int MAX_ACCESS_COUNT = 20;/** * 只能有MAX_ACCESS_COUNT个线程数同时访问 */private static final Semaphore semaphore = new Semaphore(MAX_ACCESS_COUNT);public static void main(String[] args) {// 线程池ExecutorService exec = Executors.newCachedThreadPool();// 模拟30个客户端for (int i = 0; i < 30; i++) {Runnable run = new Runnable() {@Overridepublic void run() {try {// 1秒钟内得不到许可,则丢弃访问。if (semaphore.tryAcquire(1, TimeUnit.SECONDS)) {System.out.println("正在执行...");//做一些事情...Thread.sleep(2 * 1000);System.out.println("执行完毕!");} else {System.out.println("访问被拒绝!!!");}} catch (InterruptedException e) {e.printStackTrace();} finally {// 执行完成,释放许可。semaphore.release();}}};exec.execute(run);}// 关闭线程池exec.shutdown();}}
阅读全文
0 0
- Java实现流控-Semaphore
- JAVA Semaphore实现信号灯
- Java—Semaphore实现信号灯
- java semaphore 信号量,流控程序
- JAVA多线程—Semaphore实现信号灯
- semaphore 实现
- Java Semaphore
- java Semaphore
- Java Semaphore
- java Semaphore
- java semaphore
- java Semaphore
- java-Semaphore
- Java Semaphore
- Semaphore Java
- Java 并发专题 : Semaphore 实现 互斥 与 连接池
- Java 并发专题 : Semaphore 实现 互斥 与 连接池
- java中的信号量semaphore实现生产者消费者模式
- Packet for query is too large (xxxx > xxxx)
- RE正则表达式与grep
- 170602 逆向-CrackMe之009
- Android客户端与服务器交互方式(1)
- xamarin学习笔记A04(安卓基本布局)
- Java实现流控-Semaphore
- phpstorm用laravel开发
- 理解typename的两个含义
- 【贪心】17.6.1 优雅的序列 题解
- 实现静态顺序表和动态顺序表
- github提交代码避免输入用户名和密码的方法总结
- 此贴用于记录各种碎片知识
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛—J qwb又偷懒了
- cookies,sessionStorage和localStorage的区别