//死锁的实现
//一个线程等待另一个线程执行完毕后才可以继续执行,但如果现在相关的线程彼此都在等待着,那么就会造成死锁。
class Pen{ private String pen="笔"; public String getPen() { return pen; } } class Book{ private String book="本"; public String getBook() { return book; } } public class Thread5 { private static Pen pen=new Pen(); private static Book book=new Book(); public static void main(String[] args) { Thread5 thread5=new Thread5(); thread5.deadLock(); } public void deadLock(){ Thread thread=new Thread(new Runnable() { @Override public void run() { synchronized (pen){ System.out.println("我有笔,没有本"); synchronized (book){ System.out.println("我有笔,也有本"); } } } },"线程A"); Thread thread1=new Thread(new Runnable() { @Override public void run() { synchronized (book){ System.out.println("我有本,没有笔"); synchronized (pen){ System.out.println("我有本,也有笔"); } } } },"线程B"); thread.start(); thread1.start(); } }