A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xgm 中级黑马   /  2016-3-14 23:38  /  555 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

API说明:(The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls)
  1. public class ShareData1 {
  2.     //static int data = 0;
  3.     static Map<Thread,Integer> map = new HashMap<Thread,Integer>();
  4.     public static void main(String[] args) {
  5.          
  6.         for(int i=0;i<2;i++){
  7.             new Thread(){
  8.                 public void run() {
  9.                     int data = new Random().nextInt();
  10.                     System.out.println(Thread.currentThread().getName()+":"+data);
  11.                     map.put(Thread.currentThread(), data);
  12.                 /*    map.put(Thread.currentThread(), data);
  13.                     System.out.println(Thread.currentThread().getName()+":"+data);*/
  14.                      
  15.                     new A().getDataA();
  16.                     new B().getDataB();
  17.                 };
  18.             }.start();
  19.         }
  20.     }
  21.     static class A{
  22.     void getDataA(){
  23.         System.out.println(Thread.currentThread().getName()+"A:"+map.get(Thread.currentThread()));
  24.     }}
  25.     static class B{
  26.     void getDataB(){
  27.         System.out.println(Thread.currentThread().getName()+"B:"+map.get(Thread.currentThread()));
  28.     }}
  29. }

  30. /*错误的结果:
  31.     Thread-1:-236229789
  32.     Thread-0:-934142735
  33.     Thread-1A:null
  34.     Thread-0A:-934142735
  35.     Thread-1B:null
  36.     Thread-0B:-934142735
  37.     =====================
  38.     Thread-0:-1331897743
  39.     Thread-1:-1239048981
  40.     Thread-1A:-1239048981
  41.     Thread-0A:null
  42.     Thread-1B:-1239048981
  43.     Thread-0B:null
  44.     ====================
  45.     Thread-0:-1192204428
  46.     Thread-1:-439715298
  47.     Thread-0A:null
  48.     Thread-1A:-439715298
  49.     Thread-0B:null
  50.     Thread-1B:-439715298
  51. ******************************************************
  52.   正确的结果
  53.     Thread-0:1109365405
  54.     Thread-1:969714427
  55.     Thread-0A:1109365405
  56.     Thread-1A:969714427
  57.     Thread-0B:1109365405
  58.     Thread-1B:969714427
  59.     ===================
  60.     Thread-1:1936099369
  61.     Thread-0:-616837039
  62.     Thread-0A:-616837039
  63.     Thread-1A:1936099369
  64.     Thread-0B:-616837039
  65.     Thread-1B:1936099369
  66. */
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马