博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Semaphore信号量
阅读量:7143 次
发布时间:2019-06-29

本文共 1337 字,大约阅读时间需要 4 分钟。

hot3.png

import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;/** * 信号量 * * @author Vincent Zhao * @version 1.0.0 * @Time 2015/4/20 15:57 */public class SemaphoreDemo {    public static void main(String[] args) {        // 线程池        ExecutorService exec = Executors.newCachedThreadPool();        // 只能5个线程同时访问        final Semaphore semp = new Semaphore(5);        // 模拟20个客户端访问        for (int index = 0; index < 50; index++) {            final int NO = index;            Runnable run = new Runnable() {                public void run() {                    try {                        // 获取许可                        semp.acquire();                        System.out.println("Accessing: " + NO);                        Thread.sleep((long) (Math.random() * 10000));                        // 访问完后,释放                        semp.release();                        //availablePermits()指的是当前信号灯库中有多少个可以被使用                        System.out.println("-----------------" + semp.availablePermits());                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }            };            exec.execute(run);        }        // 退出线程池        exec.shutdown();    }}

转载于:https://my.oschina.net/vincentzhao/blog/403907

你可能感兴趣的文章
ML 02、监督学习
查看>>
兄弟郊游问题
查看>>
UltraEdit打开中文乱码
查看>>
Linux输出重定向
查看>>
Oracle 数据恢复指导具体解释
查看>>
ArcPad 10 的安装部署
查看>>
Spring 注解Autowired自动注入bean异常解决
查看>>
一个睡五分钟等于六个钟头的方法
查看>>
Material Designer的低版本兼容实现(五)—— ActivityOptionsCompat
查看>>
Mysql监控工具小集合
查看>>
POJ 1654 Area 计算几何
查看>>
Linux下Nginx+Tomcat整合的安装与配置
查看>>
Python的安装和详细配置(转)
查看>>
FloatingActionButton
查看>>
[再寄小读者之数学篇](2014-11-24 Abel 定理)
查看>>
iText导出pdf、word、图片
查看>>
android脚步---不同界面之间切换
查看>>
降压转换器 (Buck)
查看>>
SQL点滴26—常见T-SQL面试解析
查看>>
Wami Map Project – 开源的 OSM API 服务
查看>>