使用synchronized产生死锁
来源:互联网 发布:比特彗星udp端口阻塞 编辑:程序博客网 时间:2024/05/21 17:04
public void sync() {final Object object1 = new Object();final Object object2 = new Object();Executor executor = Executors.newFixedThreadPool(2);executor.execute(new Runnable() {public void run() {synchronized (object1) {System.out.println("线程1 获取锁1");ThreadUtils.sleep(1000);synchronized (object2) {System.out.println("线程1 获取锁2");}}}});executor.execute(new Runnable() {public void run() {synchronized (object2) {System.out.println("线程2 获取锁2");synchronized (object1) {System.out.println("线程2 获取锁1");}}}});}
程序输入结果
线程1 获取锁1
线程2 获取锁2
通过jconsole查看 线程 并可以检查已经发生死锁
阅读全文
0 0
- 使用synchronized产生死锁
- synchronized产生的死锁
- 使用synchronized实现死锁
- 使用lock 产生死锁
- synchronized的使用及死锁现象
- 产生死锁
- synchronized 和 lock 基本使用以及死锁分析
- Synchronized: 递归与死锁
- C#使用lock产生死锁的一个例子
- 产生死锁的必要条件
- 产生死锁代码 - Java
- GCD产生死锁
- 关于死锁的产生
- 产生死锁的原因
- 死锁产生的原因
- 死锁如何产生?
- java产生死锁例子
- 产生死锁的条件
- Android 编码规范V1.0
- 时间轴
- json_decode的结果为null,json_encode的结果为
- hdu 5920 贪心+模拟
- vmware workstation 4,5,6,7,8,9,10,11,12,14 通用许可证密钥集合
- 使用synchronized产生死锁
- Android Studio 一个工程打包多个不同包名的APK
- cocos2dx3.0rc导出自定义类到lua的方法详细步骤
- LeetCode.415(43) Add Strings&&Multiply Strings
- WebView一直加载不出来问题,有可能是少了设置这个属性
- tableview如何删除选中行的问题。
- 错误提示:Syntax error, insert "Finally" to complete TryStatement
- 关于微信小程序POST请求中参数传递的方法
- 硬币排成线—LintCode