File size: 946 Bytes
0284885
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package Thread_safe_package;

public class MyThread3 extends Thread {

    static Object objA = new Object();
    static Object objB = new Object();

    @Override
    public void run() {
        //1、循环
        while (true) {
            if ("线程A".equals(getName())) {
                synchronized (objA){
                    System.out.println("线程A拿到了A锁,准备拿B锁");
                    synchronized (objB){
                        System.out.println("线程A拿到了B锁,顺利执行完一轮");
                    }
                }

            } else if ("线程B".equals(getName())) {
                synchronized (objB){
                    System.out.println("线程B拿到了B锁,准备拿A锁");
                    synchronized (objA){
                        System.out.println("线程B拿到了A锁,顺利执行完一轮");
                    }
                }
            }
        }
    }
}