//在同一线程里的所有模块使用的是同一数据,其实下面代码就是ThreadLocal的原理,
//用这个就可以简单的实现,ThreadLocal的代码实现请看 java线程数据共享2
 
public class ThreadShareDataTest {
 private static Map shareData = new HashMap();
 public static void main(String[] args) {
  for (int i = 0; i < 2; i++) {
   new Thread() {
    public void run() {
     int data = new Random().nextInt();
     shareData.put(Thread.currentThread(), data);
     System.out.println(Thread.currentThread().getName() + data);
     System.out.println("moudle A in "
       + Thread.currentThread().getName() + new A().get());
     System.out.println("moudle B in "
       + Thread.currentThread().getName() + new B().get());
    }
   }.start();
  }
 }
 static class A {
  public int get() {
   return (Integer) shareData.get(Thread.currentThread());
  }
 }
 static class B {
  public int get() {
   return (Integer) shareData.get(Thread.currentThread());
  }
 }
}