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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wyh2016 中级黑马   /  2016-12-16 00:46  /  1560 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

生成50个红包(金额是随机的,范围在1-10元之间)
创建5个线程代表5个人,然后让这5个人去抢这50个红包,每次抢红包需要300ms的时间,
在控制台打印出(xxx抢了xxx元)(不限定每人抢的次数并且抢到红包后还可以接着抢,每次生成一个红包).
import java.util.Random;
import java.util.Scanner;
public class Test2 {

public static void main(String[] args) {
//启动五个线程
  new pot("1").start();
  new pot("2").start();
  new pot("3").start();
  new pot("4").start();
  new pot("5").start();
}
}
class pot extends Thread {//继承类
private static int hongbao=1;//静态修饰,因为数据要共享
Random r= new Random();//产生随机数
public pot(String name){//有参构造
  super(name);
}

public  void run(){//
  
   while(true){
    synchronized (pot.class) {//
     if(hongbao==51){
      break;
     }
     try {
     Thread.sleep(300);//休眠
    } catch (InterruptedException e) {
     
     e.printStackTrace();
    }
     System.out.println(this.getName()+"抢到了第"+hongbao+"个红包,"+"金额为"+(r.nextInt(10)+1));
     hongbao++;
    }
   }
   
  
}
}

4 个回复

倒序浏览
试试共同抢一个50元的红包
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马