我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java如何实现作业调度

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java如何实现作业调度

这篇文章主要讲解了“Java如何实现作业调度”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何实现作业调度”吧!

Java实现作业调度

要求

Java实现SJF算法调度,要求测试数据可以随即输入或从文件中读入;

必须要考虑到作业的到达时间;

最终能够计算每一个作业的周转时间、带权周转时间,给代码加中文注释

参考代码

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("作业" + job.jobId + "的周转时间为" + job.turnover + ",带权周转时间为" + job.weightTurnover);        }        System.out.println("平均周转时间为" + (double) totalTurnover / jobList.size());        System.out.println("带权平均周转时间为" + totalWeightTurnover / jobList.size());    }}

运行效果

Java如何实现作业调度

感谢各位的阅读,以上就是“Java如何实现作业调度”的内容了,经过本文的学习后,相信大家对Java如何实现作业调度这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java如何实现作业调度

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java如何实现作业调度

这篇文章主要讲解了“Java如何实现作业调度”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何实现作业调度”吧!Java实现作业调度要求Java实现SJF算法调度,要求测试数据可以随
2023-07-05

Java实现作业调度的示例代码

这篇文章主要为大家详细介绍了如何利用Java实现SJF算法调度,要求测试数据可以随即输入或从文件中读入,文中的示例代码讲解详细,需要的可以参考一下
2023-05-14

如何在Oracle中调度作业和任务

在Oracle中调度作业和任务可以通过使用DBMS_SCHEDULER包来实现。以下是一些常用的步骤:1、创建作业:BEGINDBMS_SCHEDULER.CREATE_JOB (job_name => job_na
如何在Oracle中调度作业和任务
2024-04-09

Python使用Redis实现作业调度系统(超简单)

概述 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。 Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用于持久性。 相比许多键值数据存储,
2022-06-04

java数组长度如何实现动态调整

在Java中,数组的长度是固定的,一旦定义了数组的长度,就无法再进行动态调整。如果需要动态调整数组的长度,可以使用Java集合类中的ArrayList。ArrayList是一个动态数组,它可以根据需要自动调整长度。下面是一个示例代码:i
2023-10-26

JS如何实现请求调度器

这篇文章给大家分享的是有关JS如何实现请求调度器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。为了获取一批互不依赖的资源,通常从性能考虑可以用 Promise.all(arrayOfPromises)来并发执行。
2023-06-07

Goland协程调度器scheduler如何实现

本篇内容主要讲解“Goland协程调度器scheduler如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Goland协程调度器scheduler如何实现”吧!1. 调度器schedule
2023-06-30

Python利用multiprocessing实现最简单的分布式作业调度系统实例

介绍 Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上。一个服务进程可以作为调度者,将任务分布到其他多个机器的多个进程中,依靠网络通信。想到这,就在想是不是可以使用此模
2022-06-04

java任务调度quartz怎么实现

使用Quartz实现Java任务调度的步骤如下:1. 导入Quartz库:在项目的依赖管理中,添加Quartz库的Maven或Gradle依赖。2. 创建Job类:创建一个继承自`org.quartz.Job`接口的任务类,并实现`exec
2023-09-18

如何监控和调试ApacheBeam作业

在监控和调试Apache Beam 作业时,可以使用以下方法:使用 Apache Beam 的监控和调试工具:Apache Beam 提供了一些内置的监控和调试工具,如 PipelineOptions 和 PipelineResult,可以
如何监控和调试ApacheBeam作业
2024-03-11

java灰度发布如何实现

Java灰度发布是指在发布新版本时,只将一部分用户引流到新版本,以验证新版本的稳定性和性能,最终再将全部用户引流到新版本。下面是几种实现Java灰度发布的常见方法:通过配置文件实现:可以在项目中引入一个配置文件,用来控制用户的访问流量。在配
2023-10-27

Java如何实现方法调用

这篇文章给大家分享的是有关Java如何实现方法调用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 Java的方法调用方法(method)的定义: 1 在java中程序员可以把在一个程序中多次用到的某个特定的任
2023-06-03

Java如何实现回调函数

小编给大家分享一下Java如何实现回调函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用D
2023-05-30

linux中Bash如何实现作业控制

这篇文章主要为大家展示了“linux中Bash如何实现作业控制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中Bash如何实现作业控制”这篇文章吧。作业控制Bash环境中通过命令开启进
2023-06-27

Python使用multiprocessing实现一个最简单的分布式作业调度系统

mutilprocess像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的利用率会比threading好的多。 介绍 Python的multiprocessing模块不但支持多进程,其中
2022-06-04

java如何实现进度条显示

在Java中可以通过使用`JProgressBar`类来实现进度条的显示。以下是一个简单的例子,演示了如何在Java中实现进度条的显示:```javaimport javax.swing.*;import java.awt.*;import
2023-08-24

Java中如何实现异步调用

Java中如何实现异步调用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。@Test一、创建线程public void test0() throws Exception { S
2023-06-02

java分布式任务调度怎么实现

实现Java分布式任务调度可以使用以下方法:1. 使用Quartz:Quartz是一个功能强大的开源任务调度框架,可以在Java应用程序中实现分布式任务调度。它支持任务的调度、触发、执行等功能,并且可以在多个节点上进行分布式部署。2. 使用
2023-10-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录