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 @   前端导师歌谣  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示