zoukankan      html  css  js  c++  java
  • 面试题:在静态方法和非静态方法上加 Synchronized的区别

    在静态方法和非静态方法上加 Synchronized的区别

    非静态方法

    class Test{
    public synchronized void test() {
        }
    }
    等价于
    class Test{
    public void test() {
    synchronized(this) {
        }
      }
    }
    
    非静态方法:给对象加锁,这时候,在其他一个以上线程中执行该对象的这个同步方法(注意:是该对象)就会产生互斥
    

    在静态方法

    class Test{
    public synchronized static void test() {
      }
    }
    等价于
    class Test{
    public static void test() {
    synchronized(Test.class) {
        }
        }
    }
    
    静态方法: 相当于在类上加锁, 这时候,只要是这个类产生的对象,在调用这个静态方法时都会产生互斥
    
  • 相关阅读:
    php分页问题
    php中memcached的使用
    Linux安装Git
    day06
    day07
    day03
    day05
    day04
    列表的操作
    初识数据类型
  • 原文地址:https://www.cnblogs.com/dalianpai/p/14205107.html
Copyright © 2011-2022 走看看