package Thread_case5_package; import java.util.ArrayList; import java.util.Collections; import java.util.concurrent.Callable; public class MyCallable implements Callable { ArrayList list; public MyCallable(ArrayList list) { this.list = list; } @Override public Integer call() throws Exception { ArrayList boxList = new ArrayList<>(); while (true) { synchronized (Thread_case2_package.MyThread.class) { if (list.size() == 0) { System.out.println(Thread.currentThread().getName() + boxList); break; } else { //继续抽奖 Collections.shuffle(list); Integer prize = list.remove(0); //System.out.println(getName() + "又产生了一个" + prize + "元大奖"); boxList.add(prize); } } Thread.sleep(10); } //把集合中的最大值返回 if (boxList.size() == 0) { return null; } else { return Collections.max(boxList); } } }