import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Semaphore; public class SemaphoreTest { //假若一个工厂有5台机器,但是有8个工人,一台机器同时只能被一个工人使用,只有使用完了, //其他工人才能继续使用。那么我们就可以通过Semaphore来实现 public static void main(String[] args) { ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(10); int num = 5 ; long start = System.currentTimeMillis(); Semaphore semaphore = new Semaphore(num); for (int i = 0; i < 8; i++) { newFixedThreadPool.submit(new SemaphoreRunnable(semaphore)); } long end = System.currentTimeMillis(); newFixedThreadPool.shutdown(); } public static class SemaphoreRunnable implements Runnable{ private Semaphore semaphore; public SemaphoreRunnable(Semaphore semaphore) { this.semaphore = semaphore; } @Override public void run() { try { long start = System.currentTimeMillis(); semaphore.acquire(); //Do some Thing Thread.sleep(1000); semaphore.release(); long end = System.currentTimeMillis(); System.out.println(System.currentTimeMillis() +"=========" + (end-start)/1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(支持支付宝和微信 以及扣扣群),没钱捧个人场,谢谢各位。
个人主页:http://knight-black-bob.iteye.com/
谢谢您的赞助,我会做的更好!
相关推荐
semaphore完整搭建方案,包括帮助文档、程序源码、可执行程序。按照帮助文档完整搭建可视化ansible部署解决方案
关于Android变成中的信号量semaphore,在使用过程中我们往往搞不清楚其信号量的申请和使用。这里主要针对信号量初始值为零的情况做介绍,其他情况不做讨论。初始值为零的情况较少使用,部分代码中的这个情况往往让...
使用信号量(Semaphore)实现线程的同步
semaphore开发源码,ansible可视化部署服务程序,支持界面操作。
Semaphore的使用及其方法的使用。
mutex和semaphore互斥程序实例
semaphore控制多线程循序执行,网上 找的例子更改的希望对大家有用
Semaphore T-BOX System OverviewPDF,Semaphore T-BOX System Overview
Semaphore是计数信号量。Semaphore管理一系列许可证。每个acquire方法阻塞,直到有一个许可证可以获得然后拿走一个许可证;每个release方法增加一个许可证,这可能会释放一个阻塞的acquire方法。然而,其实并没有...
Semaphore_TBOX_产品-软件及系统功能
多线程(C++)同步Semaphore
Linux下多线程编程-Pthread与Semaphore的使用.doc
C#语言Semaphore类用法实例,多线程 用于有多个同类型共享资源(比如端口)时,如何协调端口分配给线程访问资源的问题,是一个简单模拟实例(源代码)。
Semaphore进程间通讯测试源码,CreateSemaphoreW,OpenSemaphore,ReleaseSemaphore,WaitForSingleObjectEx
Semaphore 源码解析 通过使用Semaphore可以在高并发场景进行限流控制处理
本文分析了内核同步及互斥的几种机制Waitqueue、Event及Semaphore的实现,详细分析了其实现流程。Event及Semaphore本质上都是基于Waitqueue和自旋锁实现的。总结了静态定义及动态初始化数据结构的相关规则,这对于...
Ansible-semaphore.zip,可供选择的开源towerrelease,ansible是一个简单而强大的自动化引擎。它用于帮助配置管理、应用程序部署和任务自动化。
windows下安装cygwin,编译darknet时缺少的三个头文件,下载后复制到darknet下include文件夹内即可
信号量+共享存储区的进程间通信,互斥、同步
在JAVA里面,我的理解是信号计数的作用,比如我想设置只能允许500个线程访问Web...这样就实现了控制的作用,当然这个功能咱们自己通过锁的机制可以自己完成,不过使用Semaphore比较简单、方便,这也是它产生的原因。