您当前的位置: 首页 >  Gutie_bartholomew

多线程练习:抽奖箱抽奖

Gutie_bartholomew 发布时间:2018-02-02 14:24:09 ,浏览量:3

package homeworkday11;
import java.util.ArrayList;
/*第四题:分析以下需求,并用代码实现
有一个抽奖池,该抽奖池中存放了奖励的金额,该抽奖池中的奖项为 {10,5,20,50,100,200,500,800,2,80,300,700};
创建两个抽奖箱(线程)设置线程名称分别为“抽奖箱1”,“抽奖箱2”,随机从抽奖池中获取奖项元素并打印在控制台上,格式如下:
每次抽出一个奖项就打印一个(随机但是奖励不能重复)
1.每次抽出一个奖项就打印一个(随机)
 抽奖箱1 又产生了一个 10 元大奖
 抽奖箱1 又产生了一个 100 元大奖
 抽奖箱1 又产生了一个 200 元大奖
 抽奖箱1 又产生了一个 800 元大奖 
 抽奖箱2 又产生了一个 700 元大奖   
 //.....
2.每次抽的过程中,不打印,抽完时一次性打印(随机)
 在此次抽奖过程中,抽奖箱1总共产生了6个奖项,分别为:10,20,100,500,2,300最高奖项为300元,总计额为932元
 在此次抽奖过程中,抽奖箱2总共产生了6个奖项,分别为:5,50,200,800,80,700最高奖项为800元,总计额为1835元
3.每次抽的过程中,不打印,抽完时一次性打印(随机)
 在此次抽奖过程中,抽奖箱1总共产生了6个奖项,分别为:10,20,100,500,2,300最高奖项为300元,总计额为932元
 在此次抽奖过程中,抽奖箱2总共产生了6个奖项,分别为:5,50,200,800,80,700最高奖项为800元,总计额为1835元
 在此次抽奖过程中,抽奖箱2中产生了最大奖项,该奖项金额为800元
------------------------------------------------------------------*/
public class test4 {
 public static void main(String[] args) {
  ChouJiang3 l= new ChouJiang3();
  Thread t=new Thread(l);
  Thread t1=new Thread(l);
  t.start();
  t.setName("抽奖箱A");
  t1.start();
  t1.setName("抽奖箱B");
 }
}//主程序末尾

package homeworkday11;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
class ChouJiang3 implements Runnable {
    public static int[] arr = {10,5,20,50,100,200,500,800,2,80,300,700};
    int num = arr.length;
    static ArrayList list =  new ArrayList();
    static ArrayList list1 =  new ArrayList();
    static int lmax;
   
    static{
     for(int money:arr){
      list1.add(money);
     }
    lmax=Collections.max(list1);
    }
   
    @Override
    public void run() {
            String threadName = Thread.currentThread().getName();
            ArrayList box =  new ArrayList();
            while(true) {
                    synchronized(this){
                            if(num
关注
打赏
查看更多评论

Gutie_bartholomew

暂无认证

  • 3浏览

    0关注

    350博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录