synchronized
synchronized 与static synchronized
synchronized同步代码块是对类的当前实例进行加锁,防止其他线程访问该类的这个类实例所有synchronized块。
static synchronized是控制类的所有实例的访问,static synchronized是限制线程同时访问jvm中该类的所有实例同时访问对应的代码块。
结论:
synchronized 是对整个方法进行上锁,只有当一个方法执行完毕后,另一个线程才可以执行这个方法。
static synchronized是某个类的范围,锁的对象为这个类对象,指的是所有该类的实例访问这个方法都会进行加锁。