网站首页 > 文章中心 > 其它

java实现调度算法代码

作者:小编 更新时间:2023-09-06 19:43:54 浏览量:190人看过

求一个先来先服务调度算法的程序 java编的

import java.util.ArrayList;

import java.util.List;

public class Question {

// 调度总站

class DiaoDuZhan{

private ListClient list;

public Client getClient(){// 获得客户

java实现调度算法代码-图1

if(list != null list.size() 0){

Client client = list.get(0);

list.remove(client);

return client;

java实现调度算法代码-图2

}else{

return null;

}

public void addClient(Client client){

if(list == null){

list = new ArrayListClient();

list.add(client);

// 客户

interface Client{

public void setService(Service service);

public Service getSerive();

// 服务

interface Service{

public void doService();

// 服务员

class waiter{

DiaoDuZhan diaoduzhan;

public DiaoDuZhan getDiaoduzhan() {

return diaoduzhan;

public void setDiaoduzhan(DiaoDuZhan diaoduzhan) {

this.diaoduzhan = diaoduzhan;

public void doNext(){

Client client = diaoduzhan.getClient();

if(client != null)

client.getSerive().doService();

java代码,多机调度问题,怎么解释

多机调度问题的Java实现(贪心算法)

具体问题描述以及C/C++实现参见网址

[java]?view?plain?copy?print?

import?java.util.ArrayList;?

import?java.util.Collections;?

import?java.util.LinkedList;?

import?java.util.List;?

/**?

*?多机调度问题--贪心算法?

*?

*/?

public?class?JobMachine?{?

public?static?class?JobNode?implements?Comparable{?

int?id;//作业的标号?

int?time;//作业时间?

public?JobNode(int?id,int?time){?

this.id=id;?

this.time=time;?

}?

public?int?compareTo(Object?x)?{//按时间从大到小排列?

int?times=((JobNode)x).time;?

if(timetimes)?return?-1;?

if(time==times)?return?0;?

return?1;?

}??

public?static?class?MachineNode?implements?Comparable{?

int?id;//机器的标号?

int?avail;//机器空闲的时间(即机器做完某一项工作的时间)?

public?MachineNode(int?id,int?avail){?

this.avail=avail;?

public?int?compareTo(Object?o)?{//升序排序,LinkedList的first为最小的?

int?xs=((MachineNode)o).avail;?

if(availxs)?return?-1;?

if(avail==xs)?return?0;?

public?static?int?greedy(int[]?a?,int?m){?

int?n=a.length-1;//a的下标从1开始,所以n(作业的数目)=a.length-1?

int?sum=0;?

if(n=m){?

for(int?i=0;in;i++)?

sum+=a[i+1];?

System.out.println("为每个作业分别分配一台机器");?

return?sum;?

ListJobNode?d=new?ArrayListJobNode();//d保存所有的作业?

for(int?i=0;in;i++){//将所有的作业存入List中,每一项包含标号和时间?

java实现调度算法代码-图3

JobNode?jb=new?JobNode(i+1,a[i+1]);?

d.add(jb);?

Collections.sort(d);//对作业的List进行排序?

LinkedListMachineNode?h=new?LinkedListMachineNode();//h保存所有的机器?

for(int?i=1;i=m;i++){//将所有的机器存入LinkedList中?

MachineNode?x=new?MachineNode(i,0);//初始时,每台机器的空闲时间(完成上一个作业的时间)都为0?

h.add(x);?

int?test=h.size();?

for(int?i=0;in;i++){?

Collections.sort(h);?

MachineNode?x=h.peek();?

System.out.println("将机器"+x.id+"从"+x.avail+"到"+(x.avail+d.get(i).time)+"的时间段分配给作业"+d.get(i).id);?

x.avail+=d.get(i).time;?

sum=x.avail;?

public?static?void?main(String[]?args)?{?

int?sum=greedy(a,m);?

System.out.println("总时间为:"+sum);?

运行结果:?

*/

Java调度算法 来个大神写程序 选择一个调度算法,实现处理器调度.

public static void main(String[] args) {

int sum = 0;

for (int i = 1; i = 100; i++) {

continue;

sum += i;

System.out.println(sum);

用JAVA实现时间片轮转调度算法

你先用C++写,然后做成DLL.

再用java去调就好了.

一般java做底层控制和调用都会这么做.

就像io什么的,都是去调用C的代码完成的

一般java调用c写的dll代码都比较方便.

c调用java的代码几乎不可能.

以上就是土嘎嘎小编为大家整理的java实现调度算法代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章