最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)作業(yè)調(diào)度的示例代碼

 更新時間:2023年04月04日 08:32:58   作者:繪繪~  
這篇文章主要為大家詳細介紹了如何利用Java實現(xiàn)SJF算法調(diào)度,要求測試數(shù)據(jù)可以隨即輸入或從文件中讀入,文中的示例代碼講解詳細,需要的可以參考一下

Java實現(xiàn)作業(yè)調(diào)度

要求

Java實現(xiàn)SJF算法調(diào)度,要求測試數(shù)據(jù)可以隨即輸入或從文件中讀入;

必須要考慮到作業(yè)的到達時間;

最終能夠計算每一個作業(yè)的周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,給代碼加中文注釋

參考代碼

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Random;

public class test {
    
    static class Job {
        public int jobId;
        public int arriveTime;
        public int needTime;
        public int finishTime;
        public int turnover;
        public double weightTurnover;

        public Job(int jobId, int arriveTime, int needTime) {
            this.jobId = jobId;
            this.arriveTime = arriveTime;
            this.needTime = needTime;
        }
    }

    public static void main(String[] args) {
        List<Job> jobList = new ArrayList<>();
        Random random = new Random();  

        int jobSize = 5;  
        int rangeArriveTime = 5;  
        int rangeNeedTime = 10;   
        for (int i = 0; i < jobSize; i++) {
            Job job = new Job(i, random.nextInt(rangeArriveTime), random.nextInt(rangeNeedTime) + 1);
            jobList.add(job);
        }

        jobList.sort(Comparator.comparingInt(o -> o.arriveTime));

        int currentTime = 0;  
        int totalTurnover = 0;  
        double totalWeightTurnover = 0;  
        int completeJobNum = 0;  

        while (completeJobNum < jobList.size()) {
            int shortestNeedTime = Integer.MAX_VALUE;
            Job shortestNeedJob = null;
            
            for (Job job : jobList) {
                if (job.finishTime > 0) { 
                    continue;
                }
                if (job.arriveTime <= currentTime && job.needTime < shortestNeedTime) {  
                    shortestNeedTime = job.needTime;
                    shortestNeedJob = job;
                }
            }
            currentTime += shortestNeedJob.needTime;  
            shortestNeedJob.finishTime = currentTime;  
            shortestNeedJob.turnover = shortestNeedJob.finishTime - shortestNeedJob.arriveTime;  
            shortestNeedJob.weightTurnover = (double) shortestNeedJob.turnover / shortestNeedJob.needTime;  
            totalTurnover += shortestNeedJob.turnover;  
            totalWeightTurnover += shortestNeedJob.weightTurnover;  
            completeJobNum++;  
        }

        for (Job job : jobList) {
            System.out.println("作業(yè)" + job.jobId + "的周轉(zhuǎn)時間為" + job.turnover + ",帶權(quán)周轉(zhuǎn)時間為" + job.weightTurnover);
        }

        System.out.println("平均周轉(zhuǎn)時間為" + (double) totalTurnover / jobList.size());
        System.out.println("帶權(quán)平均周轉(zhuǎn)時間為" + totalWeightTurnover / jobList.size());
    }
}

運行效果

到此這篇關(guān)于Java實現(xiàn)作業(yè)調(diào)度的示例代碼的文章就介紹到這了,更多相關(guān)Java作業(yè)調(diào)度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot?使用AOP?+?Redis?防止表單重復提交的方法

    SpringBoot?使用AOP?+?Redis?防止表單重復提交的方法

    Spring?Boot是一個用于構(gòu)建Web應用程序的框架,通過AOP可以實現(xiàn)防止表單重復提交,本文介紹了在Spring?Boot應用程序中使用AOP和Redis來防止表單重復提交的方法,需要的朋友可以參考下
    2023-04-04
  • java提取json中某個數(shù)組的所有值方法

    java提取json中某個數(shù)組的所有值方法

    下面小編就為大家分享一篇java提取json中某個數(shù)組的所有值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • SpringBoot+Ajax+redis實現(xiàn)隱藏重要接口地址的方法

    SpringBoot+Ajax+redis實現(xiàn)隱藏重要接口地址的方法

    這篇文章主要介紹了SpringBoot+Ajax+redis實現(xiàn)隱藏重要接口地址,本篇文章主要講訴使用SpringBoot項目配合Ajax和redis實現(xiàn)隱藏重要接口地址,這里我以隱藏秒殺地址為例,需要的朋友可以參考下
    2024-03-03
  • springboot實現(xiàn)分頁功能的完整代碼

    springboot實現(xiàn)分頁功能的完整代碼

    Spring Boot是一個快速開發(fā)框架,它提供了很多便捷的功能,其中包括分頁查詢,下面這篇文章主要給大家介紹了關(guān)于springboot實現(xiàn)分頁功能的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • mybatis自定義類型處理器TypehHandler示例詳解

    mybatis自定義類型處理器TypehHandler示例詳解

    我們在寫mapper映射器的配置文件時,不經(jīng)意間已經(jīng)用到類型轉(zhuǎn)換,不過是mybatis幫我們完成的,下面這篇文章主要給大家介紹了關(guān)于mybatis自定義類型處理器TypehHandler的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • SpringBoot整合多個Mq服務做法詳解

    SpringBoot整合多個Mq服務做法詳解

    SpringBoot整合rabbitmq很容易,但是整合的目的是為了使用,那要使用rabbitmq就要對其有一定的了解,不然容易整成一團漿糊。因為說到底,SpringBoot只是在封裝rabbitmq的API,讓其更容易使用而已,廢話不多說,讓我們一起整它
    2023-02-02
  • Java IO 之文件讀寫簡單實例

    Java IO 之文件讀寫簡單實例

    這篇文章主要介紹了Java IO 之文件讀寫簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Java中數(shù)字黑洞實現(xiàn)代碼

    Java中數(shù)字黑洞實現(xiàn)代碼

    這篇文章主要介紹了Java編程中如何實現(xiàn)數(shù)字黑洞算法游戲,其中涉及到了數(shù)組、scanner、if語句等Java編程的基礎知識,需要的朋友可以參考下
    2017-09-09
  • Spring中的@CrossOrigin注解的使用詳細解讀

    Spring中的@CrossOrigin注解的使用詳細解讀

    這篇文章主要介紹了Spring中的@CrossOrigin注解的使用詳細解讀,跨源資源共享(CORS),是由大多數(shù)瀏覽器實現(xiàn)的W3C規(guī)范,允許對跨域請求進行靈活授權(quán),用來代替IFRAME或JSONP等非正規(guī)實現(xiàn)方式,需要的朋友可以參考下
    2023-11-11
  • Java內(nèi)部類和匿名內(nèi)部類的用法說明

    Java內(nèi)部類和匿名內(nèi)部類的用法說明

    這篇文章主要介紹了Java內(nèi)部類和匿名內(nèi)部類的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08

最新評論

玉门市| 边坝县| 蕉岭县| 三亚市| 思南县| 上林县| 赤壁市| 农安县| 河西区| 施甸县| 全南县| 手游| 汽车| 连平县| 通榆县| 美姑县| 克山县| 江川县| 竹北市| 汕尾市| 浪卡子县| 平湖市| 凤庆县| 扎兰屯市| 四川省| 城市| 台前县| 镇原县| 承德市| 昌邑市| 安顺市| 都江堰市| 龙陵县| 丘北县| 志丹县| 凤翔县| 安宁市| 昭觉县| 耒阳市| 丰都县| 汤阴县|