package Thread_case1_package; import java.util.Random; public class MyThread extends Thread { //共享数据 //100块,分成了3个包 static double money = 100; static int count = 3; //最小的中奖金额 static final double MIN = 0.1; @Override public void run() { synchronized (MyThread.class) { if (count == 0) { System.out.println(getName() + "没有抢到红包!"); } else { double prize = 0; if (count == 1) { //表示此时是最后一个红包 //就无需随机,剩余所有钱都是中奖金额 prize = money; } else { //表示第一次,第二次(随机) Random r = new Random(); double bounds = money - (count - 1) * MIN; prize = r.nextDouble(bounds); if (prize < MIN) { prize = MIN; } } //从money当中,去掉当前中奖的金额 money -= prize; //红包个数-1 count--; //本次红包的信息打印 System.out.println(getName() + "抢到了" + prize + "元"); } } } }