2024年3月14日发(作者:)

任务调度

从网上发现了好多任务调度的框架,对于小白的编辑来说也很困惑啊,那让我们一起

慢慢走近任务调度框架吧!

什么是任务调度

任务调度是操作系统的重要组成部分,而对于实时操作系统,任务调度直接影响其实

时性能。

任务调度方式常规可分为:

可打断调度(实时系统基本功能):关键防止优先级倒置 ;

不可打断调度:先来先服务,不可中断。

任务调度算法可分为:

事件驱动调度算法:根据事件的先后以及任务的优先级安排任务的执行;

时钟驱动调度算法:一般用于周期任务。

事件驱动调度,依赖外部硬件设备,通过产生中断方式为任务调度提供信号。

分两种:

集成事件驱动调度:中断的优先级与任务的优先级相对应,中断只有在其优先级高于

正在执行的任务时才会被处理器响应。

非集成事件驱动调度:任务通过外部中断启动,中断优先级与相关任务优先级没有关

系。

前言

任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文

由浅入深介绍四种任务调度的 Java 实现:

• Timer

• ScheduledExecutor

• 开源工具包 Quartz

• 开源工具包 JCronTab

Timer

Timer:是生产者--消费者模型的一种特例:多生产者,单消费者模型。

优点:简单易用

缺点:所有任务都是由同一个线程来调度,因此所有任务都是串行执行的,同一时间