一种简单线程并发控制的实现
2013-04-12 18:18
239 查看
/** * @author 天水 * @date 2013-4-12 下午05:08:49 */ public class ConcurrentController implements Runnable { // 并发控制数 private int controlCount; // 并发控制超时时间 (second) private int controlTimeout; // 信号量 private Semaphore semaphore; public ConcurrentController(int controlCount, int controlTimeout){ this.controlCount = controlCount; this.controlTimeout = controlTimeout; semaphore = new Semaphore(controlCount); } public void run () { try { if (semaphore.tryAcquire(this.controlTimeout, TimeUnit.SECONDS)) { // 业务代码执行 start //Thread.sleep(10); System.out.println(String.format("%s - %s run", new Date(), Thread.currentThread())); //Thread.sleep(10); // 业务代码执行 end semaphore.release(); return ; }else{ System.out.println(String.format("%s - %s timeout", new Date(), Thread.currentThread())); } } catch (InterruptedException e) { e.printStackTrace(); } } public static void main(String[] args){ ConcurrentController cc = new ConcurrentController(10, 1); // 100 threads for(int i=0; i<100; i++){ new Thread(cc, "Thread - " + i).start(); } } }
相关文章推荐
- 简单的,使用套接字实现TCP通信(用线程实现并发)
- [并发并行]_[pthread]_[对工作线程进行简单控制-暂停-继续-停止]
- [并发并行]_[pthread]_[对工作线程进行简单控制-暂停-继续-停止]
- 一种简单的可控并发粒度的TaskScheduler的实现
- 一个简单的线程池工具类——可以实现对单个线程的控制
- shell队列实现线程并发控制
- C#实现控制线程池最大数并发线程
- Java实现控制线程超时的简单方法
- shell队列实现线程并发控制
- 使用Javascript实现一种简单的数字混淆功能(高手绕过)
- 基于Socket简单实现分离式控制三维场景
- Java多线程-一个简单的线程,实现挂起和恢复的功能
- 扫描仪twain协议实现,可以实现简单控制
- 快速构建基于代码级性能测试方法的一种思路和简单实现
- linux之TCP/IP创建线程实现简单聊天(2)
- 【原创】TCP Socket 简单练习 --- 线程池实现并发服务器 分类: Linux --- 应用程序设计 2014-12-25 13:59 50人阅读 评论(0) 收藏
- 使用set实现的一种简单的全排列算法(C++语言)
- C#实现简单远程控制及桌面监控功能(客户端)
- malloc函数的一种简单的原理性实现
- 把arduino以简单的方式接入Amazon Alexa实现语音控制