public class PrintMain {
public static String obj1="obj1";
public static String obj2="obj2";
public static void main(String[] args) {
new Thread(new Runnable() {
public void run() {
System.out.println(new Date().toString + "LockA开始执行");
while(true) {
synchronized(obj1) {
System.out.println(new Date().toString + "LockA锁住obj1");
Thread.sleep(3000);
synchronized(obj2) {
System.out.println(new Date().toString + "LockA锁住obj2");
Thread.sleep(60*1000);
}
}
}
}
},"LockA").start();
new Thread(new Runnable() {
public void run() {
System.out.println(new Date().toString + "LockB开始执行");
while(true) {
synchronized(obj2) {
System.out.println(new Date().toString + "LockB锁住obj2");
Thread.sleep(3000);
synchronized(obj1) {
System.out.println(new Date().toString + "LockB锁住obj1");
Thread.sleep(60*1000);
}
}
}
}
},"LockB").start();
}
}