多线程共享一个资源,该资源本身是不可变的,所以可以被安全的共享。
共享不需要动态变更的资源的时候,比如一些固定的计算参数。
邮递员看门牌号:一群邮递员看一个门牌号。
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(); } }
本文出自 “JAVA技术栈笔记” 博客,请务必保留此出处http://stroll.blog.51cto.com/11038467/1855348
原文地址:http://stroll.blog.51cto.com/11038467/1855348