121-通过实验分析This锁的存在

this锁就是通过一个实例作为MONITOR,然后进行加锁。

  1. 同时访问。

    public synchronized void m1() {}
    public void m2() {}
  2. 顺序访问。两个线程运行方法时抢占同一个this锁。

    一个线程必须等待另一个线程访问的方法执行完成才能访问。

    public synchronized void m1() {}
    public synchronized void m2() {}
  3. 同时访问。两个线程抢占的锁不一样。m1为this锁;m2为LOCK锁。

    public synchronized void m1() {}
    private final Object LOCK = new Object();
    public void m2() {
        synchronized (LOCK) {}
    }
  4. 顺序访问。两个线程抢占同一个锁,即LOCK

    private final Object LOCK = new Object();
    public void m1() {
        synchronized (LOCK) {}
    }
    public void m2() {
        synchronized (LOCK) {}
    }

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 tuyrk@qq.com

文章标题:121-通过实验分析This锁的存在

文章字数:151

本文作者:神秘的小岛岛

发布时间:2019-11-27, 21:33:01

最后更新:2019-11-28, 23:47:01

原始链接:https://www.tuyrk.cn/wang-thread/121-this-lock/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏