JAVA基础----java死锁的一个例子 博客分类: JAVA基础 java thread deadlock 死锁
程序员文章站
2024-03-12 10:43:08
...
java的一个死锁的例子
package com.out.test; public class Test6 implements Runnable{ public static Object o1 = new Object(); public static Object o2 = new Object(); public static int i = 1; public int flag=1; public void run() { System.out.println(i++ + "线程启动。。。。"); if (flag == 1) { synchronized(o1) { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (o2) { System.out.println(i + "线程结束"); } } } if (flag == 0) { synchronized(o2) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (o1) { System.out.println(i + "线程结束"); } } } } public static void main(String[] args) { Test6 lock1 = new Test6(); Test6 lock2 = new Test6(); lock1.flag = 1; lock2.flag = 0; Thread thread1 = new Thread(lock1); Thread thread2 = new Thread(lock2); thread1.start(); thread2.start(); } }
推荐阅读
-
内存溢出和内存泄露的区别 博客分类: JAVA基础
-
JAVA基础----java死锁的一个例子 博客分类: JAVA基础 java thread deadlock 死锁
-
JAVA基础----java中final和static关键字的理解 博客分类: JAVA基础 javastaticfinal关键字
-
jdk-源码中的一些坑 博客分类: JAVA基础JAVA进阶JDK源码 jdkRunnableTask
-
java实现简单的窗体和密码验证(传参,事件机制和事件监听的作用过程) 博客分类: java图形界面基础,事件机制 javaJFrame监听器事件机制
-
Java使用Selelium的一个例子 博客分类: SorLib javaSeleliumdemo例子
-
一个完整的Java RMI通讯的例子 博客分类: SorLib javarmidemo例子
-
Java使用Selelium的一个例子 博客分类: SorLib javaSeleliumdemo例子
-
SpringMVC基础上的web框架-1.1.9 博客分类: Java框架技术 Spring MVCweb框架
-
Java基础知识回顾第一篇 - 数组和List之间的相互转换 | 二分法查找 | 冒泡排序 博客分类: Java基础知识回顾 冒泡排序二分法查找Java基础