* 多线程同步的时候, 如果同步代码嵌套, 使用相同锁, 就有可能出现死锁
* 尽量不要嵌套使用
public class Demo5_DeadLock {
private static String s1="筷子左";
private static String s2="筷子右";
public static void main(String[] args) {
new Thread() {
public void run() {
while(true) {
synchronized (s1) {
System.out.println(getName()+"...获取s1"+s1+"等待s2");
synchronized (s2) {
System.out.println(getName()+"...拿到"+s2+"开吃");
}
}
}
}
}.start();
new Thread() {
public void run() {
while(true) {
synchronized (s2) {
System.out.println(getName()+"...获取s2"+s2+"等待s1");
synchronized (s1) {
System.out.println(getName()+"...拿到"+s1+"开吃");
}
}
}
}
}.start();
}
}