synchronized 加到 static 方法前面是给class 加锁,即类锁;而synchronized 加到非静态方法前面是给对象上锁。 对象锁和类锁是不同的锁,所以多个线程同时执行这2个不同锁的方法时,是异步的。 类锁对该类的所有对象都能起作用,而对象锁不能。 大白话就是:一个线程执行同步的静态方法后,另一个线程就得等第一个线程执行完这个方法后才能继续执行。但是第二个线程可以异步地去执行非静态方法。
java基础---对象锁和类锁的区别
原文作者:buptyuhanwen
原文地址: http://www.cnblogs.com/buptyuhanwen/p/9412711.html
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: http://www.cnblogs.com/buptyuhanwen/p/9412711.html
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。