首页 > 其他 > 详细

同步代码块

时间:2017-02-17 18:57:24      阅读:155      评论:0      收藏:0      [点我收藏+]

 

什么情况下需要同步

  • 当多线程并发, 有多段代码同时执行时, 我们希望某一段代码执行的过程中CPU不要切换到其他线程工作. 这时就需要同步.
  • 如果两段代码是同步的, 那么同一时间只能执行一段, 在一段代码没执行结束之前, 不会执行另外一段代码.

作用: 保证了数据的安全性

 


弊端: 程序的运行效率低

 


格式:

synchronized(对象) {

    要被同步的代码 ;

}

 

 


同步代码块 , 同步方法 , 静态同步方法的锁对象问题:

同步代码块的锁对象是任意对象

同步方法的锁对象为this

静态同步方法的锁对象是该类的字节码文件对象

class Printer {
    Demo d = new Demo();
    public static void print1() {
        synchronized(d){                //锁对象可以是任意对象,但是被锁的代码需要保证是同一把锁,不能用匿名对象
            System.out.print("我");
            System.out.print("爱");
            System.out.print("编");
            System.out.print("程");
            System.out.print("!");
            System.out.print("\r\n");
        }
    }

    public static void print2() {   
        synchronized(d){    
            System.out.print("我");
            System.out.print("爱");
            System.out.print("中");
            System.out.print("国");
            System.out.print("\r\n");
        }
    }
}

 

同步代码块

原文:http://www.cnblogs.com/loaderman/p/6411163.html

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