class 中的多个同步静态方法

Multiple Synchronized Static Methods in a class

我在 class.

中有多个同步静态方法
 public class DoSomething {
    public static synchronized void fun1()  {
            /*do something time consuming*/
    }

    public static synchronized void fun2()  {
            /*do something time consuming*/
    }
    .
    .
 }

现在只允许一个线程执行class中的任何一个同步函数。这效率不高,因为功能彼此独立并且可以 运行 并行。 我怎样才能使它们彼此独立,但每个方法只允许一个线程,对 class.

的更改最少

使用单独的对象来锁定:

    private static final lock1=new Object();
    private static final lock2=new Object();

    public static void fun1()  {
       synchronized(lock1) {
            /*do something time consuming*/
       }
    }
    public static void fun2()  {
       synchronized(lock2) {
            /*do something time consuming*/
       }
    }