import java.util.concurrent.Semaphore;/*** * JDK文档使用备注:<br>* Semaphores are often used to restrict the number of threads than* can access some (physical or logical) resource. For example, here is a class* that uses a semaphore to control access to a pool of items:**/
public class Pool {private static final int MAX_AVAILABLE = 100;private final Semaphore available = new Semaphore(MAX_AVAILABLE, true);public Object getItem() throws InterruptedException {available.acquire();return getNextAvailableItem();}public void putItem(Object x) {if (markAsUnused(x))available.release();}// Not a particularly efficient data structure; just for demoprotected Object[] items = new Object[MAX_AVAILABLE];protected boolean[] used = new boolean[MAX_AVAILABLE];protected synchronized Object getNextAvailableItem() {for (int i = 0; i < MAX_AVAILABLE; ++i) {if (!used[i]) {used[i] = true;return items[i];}}return null; // not reached
    }protected synchronized boolean markAsUnused(Object item) {for (int i = 0; i < MAX_AVAILABLE; ++i) {if (item == items[i]) {if (used[i]) {used[i] = false;return true;} elsereturn false;}}return false;}}

转载于:https://www.cnblogs.com/leodaxin/p/7701340.html

JDK文档中关于Semaphore的正确使用以及使用场景相关推荐

  1. JDK文档是Java程序开发不可缺少的编程词典

    Java 构建商业应用程序或者某种物联网设备,构建了Android 操作系统,它为智能手机行业做出了杰出的贡献.借助 Android 操作系统,手机厂商才得以在早期与黑莓抗衡,之后又能够打破苹果的主导 ...

  2. Markdown 教程之如何在 Markdown 文档中添加流程图、方程式和交互式图形

    您是否遇到过想要在 Markdown 文档中包含一些简单图表或方程式的场景?如果这是一次性的事情,你可以做的是使用 Power Point 或在线生成器,将图表保存为图像并将其放在你的文章中.这种方法 ...

  3. 文档中根元素后面的标记格式必须正确。

    文档中根元素后面的标记格式必须正确. php或其它语言动态输出的xml,最开始<标记 前面有空格,最后面>标记 后面有 空格 导致xml解析出错 解决办法: var data:String ...

  4. 在编码中熟练使用JDK文档

    在编码中熟练使用JDK文档

  5. 代码中如何让无序标记的内容并排_英语技术文档中如何正确使用无序列表和有序列表?...

    Foreword 之前跟大家分享过英语技术文档中如何正确使用时态和英语技术文档中如何正确使用人称,这一篇再跟大家分享一下如何正确使用无序列表和有序列表. 其实,在技术文档中,除了无序列表和有序列表,另 ...

  6. 在文档中正确地使用中英文

    原文地址:http://xchunyu.cnblogs.com/archive/2005/07/30/203273.html 春鱼2005-7-30 引言 作为开发人员,只要工作,就不可避免地要与文档 ...

  7. 如何在mac下查看JDK文档(附jdk1.8中文文档下载地址)

    JDK文档在官网下的格式都是CHM,mac默认是不支持这种格式的 一.下载CHMreader 这里是苹果商店的链接:https://itunes.apple.com/cn/app/chm-reader ...

  8. 在html文档中应如何书写注释文字,html 注释_HTML基础笔记

    HTML 标题(Heading)是通过 标签来定义的. 实例 HTML 段落是通过标签  来定义的. 实例 HTML 链接是通过标签 来定义的. 实例 HTML 图像是通过标签 来定义的. 实例 HT ...

  9. C# 如何在PDF文档中创建表格

    表格能够直观的传达数据信息,使信息显得条理化,便于阅读同时也利于管理.那在PDF类型的文档中如何来添加表格并且对表格进行格式化操作呢?使用常规方法直接在PDF中添加表格行不通,那我们可以在借助第三方组 ...

最新文章

  1. 学习攻略|清华大学对外免费开放2000门课程
  2. mysql8 修改密码_sysbench压测软件连接mysql8失败案例分析
  3. html中内联的form,bootstrap3.0教程之表单(form)使用详解
  4. PHP表单提交参数验证类(可修改)
  5. SecureCRT退出全屏的方法
  6. antd 表单域验证规则 - 只能输入数字字符,去除前导0
  7. a as as big rat_超好玩!12句英语绕口令,你能一口气读完几句?
  8. WPF TreeView IsExpanded 绑定不上的问题
  9. 《编程之美》1.3一摞烙饼的排序
  10. 推荐几个Python+OpenCV实战项目
  11. 华为云服务器安全组端口开放教程
  12. 计算机win7不断重启,win7系统无故自动重启的解决办法
  13. 小米机顶盒安装第三方软件流程
  14. 告别996之Stream学习总结
  15. 大于23的男生女生都该看.看完你会变一个人
  16. python 批量造数据
  17. px4原生源码学习-(1)
  18. 史上最通俗易懂 pvalue
  19. JAVA入门————API(常用API)
  20. php文件安全访问权限,如何解决“若要获取访问该文件夹的权限,您需要使用安全选项卡”的问题...

热门文章

  1. esxi远程管理端口_如何在 vmware esxi 中开放 VNC功能及端口实现远程管理 完整篇...
  2. 在c语言中什么意思,\c在C语言中是什么意思?
  3. mysql中非主键不能自增吗_mysql非主键自增长用法实例分析
  4. tomcat下只有.class文件 没有java文件_解决tomcat发布工程后,WEB-INF/classes下文件不编译的问题...
  5. Eclipse中Spring插件:Spring Tool 4(aka Spring Tool Suite 4)插件安装
  6. 【linux】查看ip
  7. cognos 样例 oracle,Cognos10安装和sample配置(ORACLE学样例)
  8. android oom 检测工具,Android中UI检测、内存泄露、OOM、等优化处理
  9. windows 只能同时 启动一个_一个u盘能否刻入win 7、win10等多个系统?该怎么做?...
  10. php环境搭建5.6_WIN8.1下搭建PHP5.6环境