如何在Java中运行不同类实例的线程之间同步静态变量?
2022-08-31 08:45:13
						我知道在方法之前使用关键字会将同步带到该对象。也就是说,将同步运行对象同一实例的 2 个线程。synchronize
但是,由于同步是在对象级别进行的,因此将不会同步运行对象不同实例的 2 个线程。如果我们在由该方法调用的 Java 类中有一个静态变量,我们希望它在类的实例之间同步。这两个实例在 2 个不同的线程中运行。
我们可以通过以下方式实现同步吗?
public class Test  
{  
   private static int count = 0;  
   private static final Object lock= new Object();    
   public synchronized void foo() 
  {  
      synchronized(lock)
     {  
         count++;  
     }  
  }  
}
既然我们已经定义了一个静态对象,并且我们正在使用该锁的关键字,那么静态变量现在在类的实例之间同步,这是真的吗?locksynchronizedcountTest