一、什么是对象锁和类锁 顾名思义 对象锁可以锁住同一对象下synchronized修饰的方法,但不会影响其他对象。synchronized修饰普通方法就为对象锁。 类锁static synchronized修饰一个方法,当一个线程在执行该方法时,其他任何线程用任何对象调用static synchronized修饰的方法都需要等待。 二、对象锁例子 class Data {public s
假设我有一个类ClassA,其中有一个方法synchronized methodA(),那么当这个方法被调用的时候你获得就是对象锁,但是要注意,如果这个类有两个实例,比如:ClassA a = new ClassA();ClassA b = new ClassA();那么如果你在a这对象上调用了methodA,不会影响b这个对象,也就是说对于b这个对象,他也可以调用methodA,因为这是两对象
import java.util.Random;public class ThreadTests implements Runnable {private static int a = 1;//static 修饰共享数据private static int i = 1;@Overridepublic void run() {i += 1;operate();System.out.println(