java 死锁例子

来源:互联网 发布:身材丰满的av演员知乎 编辑:程序博客网 时间:2024/06/08 08:42

最近笔试面试参加了不少,本来就是优胜劣汰的过程没啥好说的,有各种形式的面试(压力面、交叉面等),但有时难免碰到sb的面试官 (Qunar南京区某位二面面试官我TM就是在说你)

书归正题,记录一下java死锁的经典例子:

public class DeadLock {    public static String obj1 = "obj1";    public static String obj2 = "obj2";    public static void main(String[] args) {        Thread t1 = new Thread(new lock1());        Thread t2 = new Thread(new lock2());        t1.start();        t2.start();    }}class lock1 implements Runnable {    public void run() {        try {            synchronized (DeadLock.obj1) {                System.out.println("lock1 lock obj1");                Thread.sleep(3000);                synchronized(DeadLock.obj2) {                    System.out.println("lock1 lock obj2");                }            }        }        catch (Exception e) {            e.printStackTrace();        }    }}class lock2 implements Runnable {    public void run() {        try {            synchronized (DeadLock.obj2) {                System.out.println("lock2 lock obj2");                Thread.sleep(3000);                synchronized(DeadLock.obj1) {                    System.out.println("lock2 lock obj1");                }            }        }        catch (Exception e) {            e.printStackTrace();        }    }}

这里写图片描述

0 0