
正文
java调度器代码 java进程调度算法代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用c语言或者Java设计出一个任务调度器。。。
公众:类PrivilegeProcess {
公共静态无效的主要(字串[] args){
MyQueue的MyQueue的新MyQueue的();/ /声明队列
印刷电路板[PCB = {新的PCB(001 ,8,1),新的PCB(002,7,9),新的PCB(003,3,8),新的PCB(004,1,7),新的PCB(005,7,4)};
PCB段=新的PCB();
(INT I = 0; pcb.length; + +){/ /初始化先进行排序,选择排序这里使用的是高优先级的一线队
(J =我; pcb.length; J + +){
(PCB [I]。特权PCB [J]。特权){
段= PCB [1];
PCB [I] = PCB [J];
PCB [J] =段;
}
}
}
体系。通过out.println(“入队后第一时间的进程的顺序:”);
(INT I = 0; pcb.length; + +){
的System.out调用println(第一次入队#程序名称:“+ PCB [我]。名称+ totaltime:”+ PCB [I]。totaltime +“的”特权“+ PCB [我]。特权); }
();
myqueue.start(PCB);
}
}
类MyQueue的{
INT指数= 0;
PCB [] PC =新的PCB [5];
PCB [] PC1 =新的PCB [4];
PCB温度=新的PCB() BR /公共无效排队(PCB工艺){/ /排队算法
(指数== 5){
(“出界!”);
返回
}
PC [索引] =进程;
指数+ +;
}
公共:PCB DEQUEUE(){/ /出队算法(索引== 0)
返回空;
(INT I = 0; pc1.length; + +){
PC1 [I] = PC [ +1];
}
指数 -
温度= PC [0];
(INT I = 0; pc1.length; + +){ BR / PC [I] = PC1 [I];
}
回报条件;
}
公共无效启动(PCB [] PC){/ /进程表算法
(PC [0]。isNotFinish ==真| | PC [1 isNotFinish ==真| | PC [2 isNotFinish ==真| | PC [3]。时isNotFinish ==真| | PC [4]。isNotFinish ==){
/ / *注:| |运算符都是假的,所有的表达式结果为假,否则真
(INT I = 0; PC长度; + +){
PC [I]。运行(这一点); /} 的System.out.println();
(INT I = 0; pc.length; + +){/ /处理每个运行一次运行的时间片的长度重新排序优先一旦
(J =我; pc.length; J + +){
如果(PC [I]特权PC [J]。特权){
温度= PC [I];
PC [I] = PC [J];
PC [J] =温度;
}
}
}
}
}
}
类PCB {/ /声明过程级
和int名,totaltime ,运行时特权;
布尔isNotFinish的;
公众PCB(){
}
公开PCB(名称,诠释totaltime特权){
this.name =的名称;/ /进程名
this.totaltime = totaltime ;/ /
this.privilege =特权;/ /总时间优先 this.runtime = 2 ;/ /时间片值是2
this.isNotFinish =真;/ /是否执行完成
(“初始值:程序名称:”+名+“totaltime:”+ totaltime +“特权”+特权);
System.out的。调用println();
}
MyQueue的MQ公共无效的run(){/ /处理的基础上实施的时间片算法
(totalTime 1){ totaltime =运行;/ /总时间大于1,总时间=总时间 - 时间片
特权 -
(“程序名称:”+姓名+“ remaintime:“+ +”特权“+特权); totaltime
的} else if(totaltime == 1){
totaltime - ;/ /总时间为1时,执行时间为1
特权 -
(“程序名称:”+姓名+“remaintime:”+ totaltime +“特权”+特权);
}其他{
isNotFinish =假;/ / 0,将isNotFinish标志设置为假
}
如果(isNotFinish ==真){br mq.deQueue(); mq.enQueue(本); }
}
}
相关问答
Q1: java 什么是调度器 scheduler
首先 class A extends TimerTask A要实现run方法 其次 java.util.Timer timer=new java.util.Timer(); A a=new A(); timer.schedule(a, 0, 1000); 0是延迟多少时间触发 1000是这个schedule的时间间隔 这里时间单位都是毫秒 这样的话就是1秒执行。
Q2: java中什么叫多态,动态方法调度(dynamic method dispatch)?给个例子最好
8.多态Polymorphism,向上转型Upcasting,动态方法调度(dynamic method dispatch)
什么叫多态?简言之,马 克 - t o - w i n:就是一个函数名,多种形态。换言之,就是当父类指针指向子类时的override。是在运行时发生的。拿
上一节的例子来讲,比如运行时如果用户输入自行车,就执行自行车的驾驶方法。如果用户输入小轿车,就执行小轿车的驾驶方法,涉及到用户,这些都只能在运行
时才能干。运行时的,就是动态的,所以这也是动态方法调度(dynamic method
dispatch),既然是父类指针指向子类,这也是向上转型Upcasting。顺便提一句。马克-to-win:学术界另有一种说
法,overload也算多态。我认为这只是学术上的一种说法而已,张三爱这么认为,李四爱那么认为,无所谓对错。不像语法错误,错了,编译器真不让你通
过。不过本书作者不支持这种overload说法。。。。。。。。。。。。详情请网上找“马克-to-win”,参考他的网站或他的百度空间:java第三章的内容
java调度器代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java进程调度算法代码、java调度器代码的信息别忘了在本站进行查找喔。







