java162-同步对象锁

定义一个dog类

public class Dog {
    private String name;
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
}
定义一个同步对象锁

//同步对象锁
public class SysObject implements Runnable {
    private Dog dog;
 
    public SysObject(){
        if(dog==null){
            dog=new Dog();
        }
    }
    public void run(){
        Thread current=Thread.currentThread();
        synchronized (dog){
            for(int i=1;i<10;i++){
                System.out.println( "线程"+current.getName()+"在修改dog的名字" );
                dog.setName( "卡尔"+ i);
                System.out.println( dog.getName() );
                try {
                    Thread.sleep( 1000 );
                }catch (InterruptedException e){
                    e.printStackTrace();
                }
            }
        }
    }
}
测试类

public class test109 {
    public static void main(String[] args){
        SysObject sysObj=new SysObject();
        Thread t0=new Thread( sysObj,"歌谣" );
        Thread t1=new Thread( sysObj,"小白" );
        Thread t2=new Thread( sysObj,"小红" );
        t2.setPriority( Thread.MAX_PRIORITY );
        t2.start();
        t1.start();
        t0.start();
    }
}
运行结果

 

posted @ 2022-07-05 18:43  前端导师歌谣  阅读(26)  评论(0)    收藏  举报