-
Immutable
- 多线程共享一个资源,该资源本身是不可变的,所以可以被安全的共享。
-
适用环境
- 共享不需要动态变更的资源的时候,比如一些固定的计算参数。
-
样例
- 邮递员看门牌号:一群邮递员看一个门牌号。
-
门牌号
-
package Immutable; public class HouseNumber { private final String number="12345678"; public String getNumber(){ return this.number; } }
-
邮递员
-
package Immutable; public class Messager implements Runnable { private HouseNumber number=null; private String myName=null; public Messager(String name,HouseNumber number){ this.myName=name; this.number=number; } @Override public void run() { while(true){ System.out.println(this.myName+":"+this.number.getNumber()); } } }
-
测试类
-
package Immutable; public class Test { public static void main(String[] args) { HouseNumber hn=new HouseNumber(); Messager m1=new Messager("m1",hn); Messager m2=new Messager("m2",hn); Messager m3=new Messager("m3",hn); Thread t1=new Thread(m1); Thread t2=new Thread(m2); Thread t3=new Thread(m3); t1.start(); t2.start(); t3.start(); } }
时间: 2024-12-14 06:58:39