Checkiming
Checkiming
采纳率0%
2016-11-23 14:09

多线程抽奖,加了个数组,怎么弄?有思路吗?

 3.有一个抽奖池,该抽奖池中存放了奖励的金额,该抽奖池用一个数组int[] arr = {10,5,20,50,100,200,500,800,2,80,300}; 
    创建两个抽奖箱(线程)设置线程名称分别为“抽奖箱1”,“抽奖箱2”,随机从arr数组中获取奖项元素并打印在控制台上,格式如下:

    抽奖箱1 又产生了一个 10 元大奖
    抽奖箱2 又产生了一个 100 元大奖 
    //.....
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_34120590 明天就辞职 4年前

    public class Test_01Demo extends Thread {
    static int[] money = { 10, 5, 20, 50, 100, 200, 500, 800, 2, 80, 300, 700 };
    static int index = 0;

    @Override
    public void run() {
        synchronized (Test_01.class) {
            while (true) {
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                // 创建随机数对象
                Random r = new Random();
                index = r.nextInt(money.length);
                System.out.println(getName() + "又产生了一个" + money[index] + "元大奖");
            }
        }
    }
    

    }

    // 测试类
    public class Test_01 {
    public static void main(String[] args) {
    Test_01Demo t1 = new Test_01Demo();
    t1.setName("抽奖箱1");
    t1.start();
    Test_01Demo t2 = new Test_01Demo();
    t2.setName("抽奖箱2");
    t2.start();

    }
    

    }

    点赞 3 评论 复制链接分享
  • Checkiming Checkiming 5年前
    private int[] arr = {10,5,20,50,100,200,500,800,2,80,300};
    private int num = arr.length;
    private ArrayList<Integer> list =  new ArrayList<Integer>();
    
    点赞 1 评论 复制链接分享