黑马程序员技术交流社区

标题: 发现一道点招题,搞懂妥妥10分拿到手 [打印本页]

作者: JunC    时间: 2016-8-20 01:13
标题: 发现一道点招题,搞懂妥妥10分拿到手
有一个抽奖池,该抽奖池中存放了奖励的金额,该抽奖池用一个数组int[] arr = {10,5,20,50,100,200,500,800,2,80,300};
        创建两个抽奖箱(线程)设置线程名称分别为“抽奖箱1”,“抽奖箱2”,随机从arr数组中获取奖项元素并打印在控制台上,格式如下:
       
        抽奖箱1 又产生了一个 10 元大奖
        抽奖箱2 又产生了一个 100 元大奖       
        //.....
作者: 水月灬清影    时间: 2016-8-20 06:45
这个难度么?
[Java] 纯文本查看 复制代码

public class Lucky {
       
        public static void main(String[] args) {
                MyRunnable my=new MyRunnable();
               
                Thread t1 = new Thread(my,"抽奖箱1");
                Thread t2=new Thread (my,"抽奖箱2");
               
                t1.start();
                t2.start();
        }
       
}

[Java] 纯文本查看 复制代码

import java.util.Random;

public class MyRunnable implements Runnable {
        private int[] arr = {10,5,20,50,100,200,500,800,2,80,300};
        public void run() {
                while(true){
                        get();
                }
        }
        private synchronized void get() {
                Random r=new Random();
                int x=r.nextInt(arr.length);
                System.out.println(Thread.currentThread().getName()+"又产生了一个"+arr[x]+"元大奖");
                try {
                        //为方便查看控制台加入200ms时间间隔
                        Thread.sleep(200);
                } catch (InterruptedException e) {
                        e.printStackTrace();
                }
        }

}





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