java 里的锁

Synchronized

public class LockTest
{
    Object obj=new Object();
    public static synchronized void testMethod1()
    {
        //同步代码。
    }
    public synchronized void testMethod2()
    {
        //同步代码
    }
    public void testMethod3()
    {
        synchronized (obj)
        {
            //同步代码
        }
    }
}

<1>Synchronized修饰静态方法的时候(对应testMethod1),锁的是当前类的class对象,对应到这里就是LockTest.class_对象_。

<2>Synchronized修饰实例方法的时候(对应testMethod2),锁的是当前类实例的对象,对应到这里就是LocKTest中的this引用_对象_。

<3>Synchronized修饰同步代码块的时候(对应testMethod3),锁的是同步代码块括号里的对象实例,对应到这里就是obj_对象_。

posted @ 2022-03-11 16:44  KLAPT  阅读(30)  评论(0)    收藏  举报