用Java代码设计一个有 N个进程共享的进程调度程序。
时间: 2024-05-25 22:19:38 浏览: 12
以下是一个简单的Java代码,用于实现共享进程调度:
import java.util.concurrent.Semaphore;
public class ProcessScheduler {
private Semaphore semaphore;
public ProcessScheduler(int n) {
semaphore = new Semaphore(n);
}
public void schedule(Process p) {
try {
semaphore.acquire();
p.execute();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
semaphore.release();
}
}
}
class Process {
private int id;
public Process(int id) {
this.id = id;
}
public void execute() {
System.out.println("Process " + id + " is executing.");
}
}
在上面的代码中,我们使用了Java内置的Semaphore类来实现进程调度。我们创建了一个ProcessScheduler类,它接受一个整数n作为参数,表示有n个进程可以同时执行。我们还创建了一个Process类,表示一个进程。在ProcessScheduler的schedule方法中,我们使用了semaphore.acquire()来获取一个许可证,表示可以执行一个进程。在Process的execute方法中,我们输出了一个简单的消息,表示该进程正在执行。当进程执行完毕后,我们释放了许可证,以便其他进程可以执行。