模拟线程死锁(几率出现)
package tread; /*线程死锁 * 过度的线程同步可能造成死锁,死锁的操作一般是在程序运行的时候才会可能出现的 * */ public class DeadLockDemo { public static void main(String[] args) { new LockThread(); } } //顾客 class Customer{ public synchronized void say(Waiter w) { System.out.println("顾客说:先做再给钱"); w.doService(); } public synchronized void doService(){ System.out.println("同意了先做,再给钱"); } } //服务员 class Waiter{ public void say(Customer c) { System.out.println("服务员说:先给钱,再做"); c.doService(); } public synchronized void doService() { System.out.println("同意了先做,再给钱"); } } class LockThread implements Runnable{ Customer c = new Customer(); Waiter w = new Waiter(); public LockThread(){ new Thread(this).start(); w.say(c); } public void run() { c.say(w); } }
模拟线程死锁(几率出现)
https://www.lingyepro.com/archives/91