package com.fifo;
import java.util.Scanner;
public class RoundRobin {
//假设一次最多能进入8个进程,按照先来先服务的原则排成一个队列
//时间片的大小设置为500ms
public static int QUENESIZE=8;
public Scanner input=new Scanner(System.in);
public String [] p=new String[QUENESIZE+1];
public int sign=1;
public static void main(String[] args) {
new RoundRobin().rr();
}
public void rr(){
System.out.println("请输入8个进程名.");
for (int i = 1; i <= QUENESIZE; i++) {
p[i]=input.next();
System.out.print(p[i]+" ");
if(i==QUENESIZE)
System.out.println();
}
for(int i=0;i
long start=System.currentTimeMillis();
excutePro();
long excuteTime = System.currentTimeMillis() - start;
while(true){
if(excuteTime>=500){
System.out.println("线程"+p[sign]+"时间片到了"+",一共花了"+excuteTime+"ms");
sign=(sign+1)%(QUENESIZE+1);//时间到了就跳到后面那个进程,可以实现轮转
break;
}else{
excuteTime = System.currentTimeMillis() - start;
}
}
}
}
public void excutePro(){
p[0]=p[sign];
System.out.println("--------这是忧伤的分割线----------");
System.out.println("现在拥有处理机的是"+p[0]+"进程");
System.out.println("========这是扑街的分割线==========");
}
}