基于 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
(当前)依赖这些任务:
(当前)被这些任务依赖:
---------------