妖碧落

导航

多线程--synchronized同步方法

   使用synchronized关键字修饰一个方法, 该方法中所有的代码都是同步的

/*
* 非静态同步函数的锁是:this
* 静态的同步函数的锁是:字节码对象   .class 文件
*/

 

public class demon_syn2 {
    public static void main(String[] args) {
        final printer2 p = new printer2();    // 匿名内部类 在使用它所在方法的局部变量时,该变量必须用final修饰
      new Thread(){
            public void run() {
                while(true){
                    p.print1();
                }
            }
        }.start();
        new Thread(){
            public void run() {
                while(true){
                    p.print2();
                }
            }
        }.start();
    }
}
class printer2{
    demo1 d2 = new demo1();
    public synchronized void print1(){        
        System.out.print("黑");
        System.out.print("马");
        System.out.print("程");
        System.out.print("序");
        System.out.print("员");
        System.out.print("\r\n");        
    }
    public synchronized void print2(){        
        System.out.print("传");
        System.out.print("智");
        System.out.print("播");
        System.out.print("客");
        System.out.print("\r\n");        
    }
}

class demo1{
    
}

 

posted on 2019-08-13 19:46  妖碧落  阅读(226)  评论(0编辑  收藏  举报