当前位置:  开发笔记 > 编程语言 > 正文

在下面的多线情景中会发生什么?

如何解决《在下面的多线情景中会发生什么?》经验,为你挑选了1个好方法。

假设我有一个类,其中has方法以如下方式同步.

public class Test{
    public static synchronized void method1(){
    }
    public static synchronized void method2(){
    }
    public synchronized void method3(){
    }
    public synchronized void method4(){
    }
}

所以,当两个线程调用场景method1method2simultaneously.I觉得只是方法之一被允许call.What会是这样的,如果他们打电话method1method3.Will那里是同样的情景也在这里?会是怎样的情况下,与method3method4来自同一个对象?



1> Patricia Sha..:

如果有两个Test类对象,由x和y引用,则会有三个监视器,一个用于Test,一个用于x,一个用于y.

method1和method2都使用Test监视器,因此相互排斥.method3和method4每个都使用监视器作为其目标对象,因此如果调用同一个对象,它们会相互排斥,但如果调用不同的对象则不会.它们不涉及Test监视器,因此它们不排除静态方法.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有