WEB开发网      婵傜晫鐝總钘夊瀻娴滎偓绱掓担鐘垫畱娑撯偓娴犺棄鍨庢禍顐fЦ閹存垳婊戦惃鍕娴犺棄濮╅崝娑崇幢鐠囧嘲鍨庢禍锟� ---閿曪拷
开发学院软件开发Java 多线程设计模式 -- immutable 阅读

多线程设计模式 -- immutable

 2009-09-17 00:00:00 来源:WEB开发网 閵嗭拷閸戝繐鐨€涙ぞ缍�婢х偛銇囩€涙ぞ缍�閵嗭拷  閸忚櫕鏁炵拫閿嬪€嶉柨瀵告畱瀵邦喖宕�
核心提示:对象 Java代码//类定义为finalpublicfinalclassPerson{//类变量定义为finalprivatefinalStringname;privatefinalStringaddress;publicPerson(Stringname,Stringaddress){this.name=name;t

对象

Java代码   

   //类定义为 final 
   public final class Person { 
 //类变量定义为 final 
     private final String name; 
 private final String address; 
 
 public Person(String name, String address) { 
 this.name = name; 
 this.address = address; 
 } 
 
 public String getName() { 
 return name; 
 } 
 
 public String getAddress() { 
 return address; 
 } 
 
     //name ,address 是不能修改的,所在多线程下安全的 
 public String toString() { 
 return "[ Person: name = " + name + ", address = " + address + " ]"; 
 } 
}

线程

Java代码  

public class PrintPersonThread extends Thread { 
 private Person person; 
 
 public PrintPersonThread(Person person) { 
 this.person = person; 
 } 
 
 public void run() { 
 while (true) { 
   //将调用Person 的toString 方法 
             //当多线程情况Person的name,address是final的 不能被修改所以是线程安全 
           System.out.println(Thread.currentThread().getName() + " prints " 
   + person); 
 } 
 } 
}

Java代码   

public class Main { 
  public static void main(String[] args) { 
    Person alice = new Person("Alice", "Alaska"); 
    new PrintPersonThread(alice).start(); 
    new PrintPersonThread(alice ).start(); 
    new PrintPersonThread(alice ).start(); 
  } 
}

用final标示比使用锁块和syschronized效率要好

同时 Integer ,等一些基本类型的包装类 都是使用immutable 模式

Tags:线程 设计模式 immutable

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接