Semaphore和synchronized的差别
来源:互联网 发布:四维数据怎么看性别 编辑:程序博客网 时间:2024/05/02 15:29
Semaphore和synchronized最主要的差别是Semaphore可以指定多个并发,而synchronized只能是一个!
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;public class SemaphoreTest {public static void main(String[] args) {ExecutorService service = Executors.newCachedThreadPool();final Semaphore sp = new Semaphore(3);for(int i=0;i<10;i++){Runnable runnable = new Runnable(){public void run(){try {sp.acquire();} catch (InterruptedException e1) {e1.printStackTrace();}System.out.println("线程" + Thread.currentThread().getName() + "进入,当前已有" + (3-sp.availablePermits()) + "个并发");try {Thread.sleep((long)(Math.random()*10000));} catch (InterruptedException e) {e.printStackTrace();}System.out.println("线程" + Thread.currentThread().getName() + "即将离开");sp.release();//下面代码有时候执行不准确,因为其没有和上面的代码合成原子单元System.out.println("线程" + Thread.currentThread().getName() + "已离开,当前已有" + (3-sp.availablePermits()) + "个并发");}};service.execute(runnable);}}}
- Semaphore和synchronized的差别
- spinlock和semaphore的差别和应用
- spinlock和semaphore的差别和应用
- 姚博文 使用synchronized同步和用Atomic的差别
- 比较ReentrantLock和synchronized和信号量Semaphore实现的同步性能
- 比较ReentrantLock和synchronized和信号量Semaphore实现的同步性能
- java1.5中使用synchronized同步和用Atomic的差别
- mutex和semaphore的区别
- mutex和Semaphore的区别
- Semaphore的介绍和使用
- Semaphore的介绍和使用
- java中的synchronized与semaphore
- 使用信号量Semaphore出现的问题,new Semaphore(1)和new Semaphore(0)
- SAN和NAS的差别
- 穷人和富人的差别
- 穷人和富人的差别
- PostMessage()和SendMessage()的差别
- InnoDB和MyISAM的差别
- 关于如何在网页中添加自己的QQ客服方法
- oracle 中schema
- 加入各种浏览器都兼容的日期选择器
- 更漏子
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- Semaphore和synchronized的差别
- EL表达式基础
- 获取VB文本框内容
- 第六周实验报告4
- 高质量C/C++编程指南
- oracle 存储过程与函数
- c/c++操作符优先级及其结合性
- python判断一个字符串是否为另一字符串的子串的几种方法
- 数据库(四)数据库基础之数据库管理系统引论----事务(Transaction)