java线程数据共享1

    技术2022-05-13  8

    //在同一线程里的所有模块使用的是同一数据,其实下面代码就是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());  } }

    }


    最新回复(0)