
基于 DAG 图的调度 DEMO,基于图数据结构与拓扑序列理论,实现一个任务调度类。
/* * * J O B 1 * / \ \ * V V V * JOB2 JOB3 JOB5 * \ / * V V * JOB4 */ --------------- 任务名:job1 是否完成:NO (当前)依赖这些任务: job2 job3 job5 (当前)被这些任务依赖: 任务名:job2 是否完成:NO (当前)依赖这些任务: job4 (当前)被这些任务依赖: job1 任务名:job3 是否完成:NO (当前)依赖这些任务: job4 (当前)被这些任务依赖: job1 任务名:job4 是否完成:NO (当前)依赖这些任务: (当前)被这些任务依赖: job2 job3 任务名:job5 是否完成:NO (当前)依赖这些任务: (当前)被这些任务依赖: job1 --------------- <<<<<<<<< 可执行待办任务列表: job4 job5 >>>>>>>>>job4 被执行 --------------- 任务名:job1 是否完成:NO (当前)依赖这些任务: job2 job3 job5 (当前)被这些任务依赖: 任务名:job2 是否完成:NO (当前)依赖这些任务: (当前)被这些任务依赖: job1 任务名:job3 是否完成:NO (当前)依赖这些任务: (当前)被这些任务依赖: job1 任务名:job4 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: job2 job3 任务名:job5 是否完成:NO (当前)依赖这些任务: (当前)被这些任务依赖: job1 --------------- >>>>>>>>>job5 被执行 --------------- 任务名:job1 是否完成:NO (当前)依赖这些任务: job2 job3 (当前)被这些任务依赖: 任务名:job2 是否完成:NO (当前)依赖这些任务: (当前)被这些任务依赖: job1 任务名:job3 是否完成:NO (当前)依赖这些任务: (当前)被这些任务依赖: job1 任务名:job4 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: job2 job3 任务名:job5 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: job1 --------------- <<<<<<<<< 可执行待办任务列表: job2 job3 >>>>>>>>>job2 被执行 --------------- 任务名:job1 是否完成:NO (当前)依赖这些任务: job3 (当前)被这些任务依赖: 任务名:job2 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: job1 任务名:job3 是否完成:NO (当前)依赖这些任务: (当前)被这些任务依赖: job1 任务名:job4 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: job3 任务名:job5 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: job1 --------------- >>>>>>>>>job3 被执行 --------------- 任务名:job1 是否完成:NO (当前)依赖这些任务: (当前)被这些任务依赖: 任务名:job2 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: job1 任务名:job3 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: job1 任务名:job4 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: 任务名:job5 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: job1 --------------- <<<<<<<<< 可执行待办任务列表: job1 >>>>>>>>>job1 被执行 --------------- 任务名:job1 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: 任务名:job2 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: 任务名:job3 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: 任务名:job4 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: 任务名:job5 是否完成:YES (当前)依赖这些任务: (当前)被这些任务依赖: ---------------