同步代碼塊的鎖也可以用對象,如LockA.locka locka對象為靜態 公共 ...
package com.swift; public class DeadLock implements Runnable { private boolean flag; DeadLock(boolean flag) { this.flag = flag; } public void run() { while (true) { if (flag) { synchronized ("suo1") { System.out.println(Thread.currentThread().getName()+"if....locka"); synchronized ("suo2") { System.out.println(Thread.currentThread().getName()+"if.....lockb"); } } } else { synchronized ("suo2") { System.out.println(Thread.currentThread().getName()+"else.....lockb"); synchronized ("suo1") { System.out.println(Thread.currentThread().getName()+"else....locka"); } } } } } public static void main(String[] args) { /* * 寫一個死鎖 */ //只有互相都等待對方放棄資源才會產生死鎖 new Thread(new DeadLock(true),"線程1").start(); new Thread(new DeadLock(false),"線程2").start(); } }
同步代碼塊的鎖也可以用對象,如LockA.locka
locka對象為靜態 公共