多线程死锁代码实例
来源:互联网 发布:汕头市大数据产业协会 编辑:程序博客网 时间:2024/05/05 16:25
package com.oyqh; public class RunnableTest implements Runnable { private int flag = 1; private Object obj1 = new Object(), obj2 = new Object(); public void run() { System.out.println("flag=" + flag); if (flag == 1) { synchronized (obj1) { System.out.println("我已经锁定obj1,休息0.5秒后锁定obj2去!"); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (obj2) { System.out.println("1"); } } } if (flag == 0) { synchronized (obj2) { System.out.println("我已经锁定obj2,休息0.5秒后锁定obj1去!"); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (obj1) { System.out.println("0"); } } } } public static void main(String[] args) { RunnableTest run01 = new RunnableTest(); RunnableTest run02 = new RunnableTest(); run01.flag = 1; run02.flag = 0; Thread thread01 = new Thread(run01); Thread thread02 = new Thread(run02); System.out.println("线程开始喽!"); thread01.start(); thread02.start(); } }
上述代码实际运行时并不会产生死锁现象,若要死锁,则需要将 private Object obj1 = new Object(), obj2 = new Object();
改为 private static Object obj1 = new Object(), obj2 = new Object();
- 多线程死锁代码实例
- Java多线程死锁实例
- 多线程死锁实例
- 多线程死锁代码
- Java死锁实例代码
- JAVA死锁代码实例
- java多线程中死锁实例
- Java代码模拟死锁 多线程
- 多线程 —— 死锁代码展示
- 多线程实例代码
- python多线程代码实例
- 多线程代码实例
- 实例代码摘录_生产消费、死锁
- 代码详解の多线程下的代码死锁
- 多线程死锁
- 多线程 - 死锁
- 多线程死锁
- 多线程死锁
- poj3114 Countries in War(强连通分量+最短路)
- 看门狗说明
- hdoj 1496 Equations
- 关于框架
- ubuntu下使用root用户
- 多线程死锁代码实例
- [ php ] php配置虚拟主机!
- 海选女主角解题报告
- Python笔记(5):sys模块,os模块,set,heap,deque简介
- js更新缓存
- X Window System Architecture Overview
- ASP.NET程序错误:error CS2001: Source file 'C:\WINDOWS\TEMP\wctb8vqw.0.cs' could not be found error
- sharepoint 2010 修改文档库列排序
- AndroidEmulator & adb