天天看點

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();
     }
 }      

運作結果

java162-同步對象鎖