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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄宝宝 高级黑马   /  2014-8-21 18:03  /  925 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄宝宝 于 2014-8-21 18:13 编辑

每一次线程1和线程0产生的data随机数是一样的,觉得很奇怪,太巧了吧,还是我没有看清楚,哪里写错了??
  1. package cn.p1.TraditionThread;

  2. import java.util.Random;
  3. /*
  4. * 线程范围内的共享变量
  5. */
  6. public class ThreadScopeShareData {

  7.    private static int data=0;//共享数据
  8.         public static void main(String[] args) {
  9.                 //创建两个线程
  10.          for(int i =1;i<=2;i++){
  11.                 new Thread(
  12.                 new Runnable() {
  13.                         
  14.                         @Override
  15.                         public void run() {
  16.                                 
  17.                               data=new Random().nextInt()
  18.                             System.out.println(Thread.currentThread().getName()+",has put data "+data)
  19.                                 new A().get();
  20.                                 new B().get();
  21.                                 
  22.                         }
  23.                 }
  24.                 ).start();
  25.          }
  26.         }

  27.         static class A
  28.         {
  29.                 public void get()
  30.                 {
  31.                         System.out.println("A form "+Thread.currentThread().getName()+",has get "+data);
  32.                 }
  33.         }
  34. static         class B
  35.         {
  36.         public void get()
  37.         {
  38.                 System.out.println("B form "+Thread.currentThread().getName()+",has get "+data);
  39.         }
  40.         }

  41. }
复制代码



0 个回复

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