使用synchronized产生死锁

来源:互联网 发布:比特彗星udp端口阻塞 编辑:程序博客网 时间:2024/05/21 17:04
public void sync() {final Object object1 = new Object();final Object object2 = new Object();Executor executor = Executors.newFixedThreadPool(2);executor.execute(new Runnable() {public void run() {synchronized (object1) {System.out.println("线程1 获取锁1");ThreadUtils.sleep(1000);synchronized (object2) {System.out.println("线程1 获取锁2");}}}});executor.execute(new Runnable() {public void run() {synchronized (object2) {System.out.println("线程2 获取锁2");synchronized (object1) {System.out.println("线程2 获取锁1");}}}});}


程序输入结果

线程1 获取锁1
线程2 获取锁2


通过jconsole查看 线程 并可以检查已经发生死锁




原创粉丝点击