黑马程序员技术交流社区

标题: 看看下面的程序 [打印本页]

作者: 何亚辉    时间: 2016-5-15 15:05
标题: 看看下面的程序

class Play {
        public static void main(String[] args){
                Window w = new Window();
                new Thread(w,"线程1").start();
                new Thread(w,"线程2").start();
        }
}

class Window implements Runnable {
                int[] a =new int[6];int i=0;
                public void run(){
                while (i<6) {                       
                        Thread t = Thread.currentThread();
                        a[i]=(int)(100*Math.random())+1;
                        System.out.println(t.getName() +"往数组里存入了"+ a[i] );
                        i++;
                        try {
                                t.sleep(1000);
                        }
                        catch (InterruptedException e) {
                                e.getStackTrace();
                        }               
                }
for (int i =0;i<=5 ;i++ ) {
         System.out.print(a[i]+"  ");
}

                }
}

为什么输出的时候会有6个0?
而且随机产生的前两个数,,总是一样的



作者: yaolv7    时间: 2016-5-15 22:22
都看到线程了还用 a[i]=(int)(100*Math.random())+1???????????
不加锁............
这帖水得可以.........
作者: zhangjinbu    时间: 2016-5-15 22:38
赞  牛人!!!!!!!!
作者: 729524251    时间: 2016-5-15 22:47
表示刚看到String类  还迷迷糊糊的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2