解法一:
还有另外一个解法:
package net.liuyx.test;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Test {
private static final int TASK_NUM = 3;
private static int num = 0;
private static int flag = 0;
private static Lock lock = new ReentrantLock();
private static List<Condition> list = new ArrayList<Condition>();
private static ExecutorService exec = Executors.newCachedThreadPool();
static {
for(int i = 0; i < TASK_NUM; i++){
list.add(lock.newCondition());
}
}
private static void crit() {
if (num >= 75) {
System.exit(1);
}