码迷,mamicode.com
首页 > 其他好文 > 详细

synchronized使用

时间:2017-05-07 13:57:59      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:使用   同步锁   方法   实例   trace   void   ted   err   color   

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

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();
            }
        
    }

 

synchronized使用

标签:使用   同步锁   方法   实例   trace   void   ted   err   color   

原文地址:http://www.cnblogs.com/zzq-include/p/6820481.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!