【Java开发】使用Semaphore控制资源访问并发量
2017-10-15 14:55
573 查看
//设置信号量的容量为10,超过10后,则在队列排队。 //tryAcquire()尝试向信号器获取一个信号量 //release()释放信号量 static final int productThreadNum=10; static final int productTimeOut=50; static final int productQueueLenth=1000; static final Semaphore productSemaphore=new Semaphore(productThreadNum,true); public static boolean tryAcquireProduct() throws InterruptedException{ int count=productSemaphore.getQueueLength(); log.info("当前等待线程:{}",count); if(count>productQueueLenth){ throw new LogicalException("购买人数过多,请稍后重试"); } return productSemaphore.tryAcquire(productTimeOut, TimeUnit.SECONDS); } public static void releaseProuct(){ productSemaphore.release(); }
https://github.com/jerrik123 https://gitee.com/huangyong
相关文章推荐
- Java中的Semaphore--用于多线程中控制资源并发访问的线程数
- 控制并发访问资源 -- Semaphore
- [笔记][Java7并发编程实战手册]3.2 资源的并发访问控制Semaphore信号量
- Java并发编程: 使用Semaphore限制资源并发访问的线程数
- 使用Semaphore限制资源并发访问的线程数
- Java并发库(十四):控制线程访问数量Semaphore
- C#多线程编程之:使用Semaphore类限制资源并发访问数
- 使用Semaphore控制并发访问
- [笔记][Java7并发编程实战手册]3.3 资源的多副本并发访问控制Semaphore
- 【Java多线程】使用Semaphore限制资源访问的线程数
- 使用Semaphore控制某个方法允许并发访问的线程的个数
- JavaEE Tutorials (13) - 使用锁定控制对实体数据的并发访问
- java并发编程学习:用 Semaphore (信号量)控制并发资源
- Java: 使用信号量(Semaphore)保护多个共享资源的访问
- 关于Java.net.URL对象使用Proxy访问Internet资源
- Java使用URL类访问网络资源
- Java中使用ResourceBundle访问资源文件(properties文件)
- hibernate之控制并发访问(乐观并发控制之外获得额外的隔离性保证--使用LockMode.UPGRADE的实例)
- JDK 1.5 使用java.util.concurrent 开发并发应用
- 控制并发访问的线程数 Semaphore 信号灯