首页 > 其他 > 详细

synchronized使用

时间:2017-05-07 13:39:01      阅读:288      评论:0      收藏:0      [点我收藏+]

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

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使用

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!