java多线程问题(200分)
来源:百度知道 编辑:UC知道 时间:2024/06/20 02:09:01
我希望所有的线程都start,但每次真正运行的只有一个,其余的都wait,每个线程只能运行一定时间,时间到了它就wait,把执行权按照队列的顺序交给下一个线程,最后的线程运行完了再交给第一个
谢谢各位了哦,分数再提高,一直到有满意的答案为止.
我需要的是模拟cpu工作的情况,我用同步互斥的办法,让处于死循环的线程wait了,但没有办法让它苏醒,调用notify不顶用。
.
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class ThreadManager {
private ExecutorService es = Executors.newSingleThreadExecutor();
void add(Runnable task) {
Future<?> future = es.submit(task);
try {
Thread.sleep(2000);//2秒之后中止
future.cancel(true);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
void shutdown() {
es.shutdown();
}
public static void main(String[] args) {
ThreadManager m = new ThreadManager();
for(int i=0; i<5; i++)
m.add(new Task());
m.shutdown();
}
}
//测试任务
class Task implements Runnable {
private static int count=0;