java多线程第三天死锁问题
2016-10-24 15:28
411 查看
package com.company.javaThreadTest; /** * Created by likailong on 2016/10/24. * username=a username=b 出现死锁 */ public class DeathLock implements Runnable { public String username; private Object lock1=new Object(); private Object lock2=new Object(); public void setFlag(String username){ this.username=username; } @Override public void run() { if(username.equals("a")){ synchronized(lock1){ try { System.out.println("username=" + username); Thread.sleep(3000); }catch (InterruptedException e){ e.printStackTrace(); } synchronized(lock2){ System.out.println("按照lock1 lock2执行"); } } }if(username.equals("b")){ synchronized(lock2){ try { System.out.println("username=" + username); Thread.sleep(3000); }catch (InterruptedException e){ e.printStackTrace(); } synchronized(lock1){ System.out.println("按照lock2 lock1执行"); } } } } public static void main(String [] args) throws InterruptedException { DeathLock deathLock=new DeathLock(); deathLock.setFlag("a"); Thread t=new Thread(deathLock); t.start(); Thread.sleep(100); deathLock.setFlag("b"); Thread t2=new Thread(deathLock); t2.start(); } }
相关文章推荐
- java多线程第三天死锁问题
- java多线程第三天死锁问题
- java多线程第三天死锁问题
- java多线程第三天死锁问题
- java例程练习(多线程[死锁问题])
- java基础知识回顾之java Thread类学习(七)--java多线程安全问题(死锁)
- java 生产者消费者问题-多线程与死锁
- java 多线程 避免死锁 哲学家就餐问题
- JAVA 多线程死锁问题及解决
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
- java 多线程 死锁 哲学家就餐问题
- java例程练习(多线程[死锁问题])
- Java多线程——安全与死锁问题
- java语言基础(93)——多线程中的死锁问题
- java例程练习(多线程[死锁问题])
- 黑马程序员:Java基础——多线程的死锁问题
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
- 多线程死锁问题分析和解决[java]
- Java多线程死锁问题测试