zoukankan      html  css  js  c++  java
  • synchronized使用

    在一个方法内部使用如下代码:

    public void m5() {
            synchronized (Test1.class) {
                System.out.println("m5");
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }

    等同于如下代码:

    public synchronized static void m5() {
                System.out.println("m5");
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
        }

    以上两种情况是全局所有实例对象共用一个同步锁;

    而如下两组代码则是每个实例对象使用单独的同步锁,如下:

     public void m6() {
            synchronized (this) {
                System.out.println("m5");
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    
     public synchronized  void m6() {
                System.out.println("m5");
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            
        }
  • 相关阅读:
    扩展正则表达式 练习题
    Linux特殊符号
    文件属性下
    文件属性和ls -lhi
    复习之前的和补充一些内容
    第二关练习题总结完结
    云服务器防ssh攻击
    实验四+085
    实验3+085
    第5次作业+085
  • 原文地址:https://www.cnblogs.com/zzq-include/p/6820481.html
Copyright © 2011-2022 走看看