信号量使用案例:
import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Semaphore; public class MySemaphore extends Thread { Semaphore position; private int id; public MySemaphore(int i,Semaphore s){ this.id=i; this.position=s; } public void run(){ try{ if(position.getQueueLength()>30){ //如果拍排队人数超过30人 System.out.println("顾客["+this.id+"],由于排队人数"+position.getQueueLength()+"太长,请换个厕所"); return; } if(position.availablePermits()>0){ System.out.println("顾客["+this.id+"]进入厕所,有空位"); } else{ System.out.println("顾客["+this.id+"]进入厕所,没空位,排队"); } position.acquire(); System.out.println("顾客["+this.id+"]获得坑位"); Thread.sleep((int)(Math.random()*1000)); System.out.println("顾客["+this.id+"]使用完毕"); position.release(); } catch(Exception e){ e.printStackTrace(); } } public static void main(String args[]){ ExecutorService list=Executors.newCachedThreadPool(); Semaphore position=new Semaphore(5);//信号量是5,时间片内最多只有5个顾客上厕所 for(int i=0;i<100;i++){ list.submit(new MySemaphore(i+1,position)); } list.shutdown(); position.acquireUninterruptibly(2); System.out.println("使用完毕,需要清扫了"); position.release(2); } }
相关推荐
可使用信号量进行进程内的线程之间同步,信号量还可以支持进程间同步。
用VS2008写的mfc工程,可编译。测试信号量CSemapaore在线程并发中的功能,并用到WaitForSingleObject()和ReleaseSemaphore()函数。
linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号量 实例代码linux 信号...
在c语言中如何用信号量。信号量的原理。和一些例子举例说明
UCOSII信号量管理实例工程工程文件。 平台为MDK4.7+STM32+UCOSII
linux下信号量控制同步问题,已经通过测试,很经典
代码实现了共享内存和信号量的结合,实现进程间通信及其同步问题。通过此代码可以理解共享内存及信号量基本函数的使用及实现原理。
这是一个Visual C++信号量线程同步的简单实例工程
UCOS2_STM32_任务间信号量通信(一)_应用实例描述
介绍了Linux信号量编程的相关知识,可以用以学习操作系统中的通过信号量同步进程的机制
在Linux中利用信号量PV控制共享内存例子的源代码
信号量,并发数。可用来控制访问资源的数量的标识,设定了一个信号量,在线程访问之前,加上信号量的处理,则可告知系统按照我们指定的信号量数量来执行多个线程。
本文以多核DSP芯片TMS320C6678为例,描述了硬件信号量的工作原理和方法以及模块的结构和配置,并给出两个核之间通信的实例。
Linux线程管理-线程信号量的使用实例.pdf 学习资料 复习资料 教学资源
该程序是我写的博客“一起talk C栗子吧(第一百零二回:C语言实例--使用信号量进行进程间同步与互斥三)”的配套程序,共享给大家使用
操作系统中经典的互斥信号量机制的应用--生产者、消费者
Linux进程间通信-信号量通信进程互斥实例.pdf 学习资料 复习资料 教学资源
stm32上搭载ucosII对于信号量的应用实例
Linux系统编程——进程同步与互斥:有名信号量,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46500417
vxworks实验,信号量。有实例代码。vxworks实验信号量。有实例代码。