基于 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
(当前)依赖这些任务:
(当前)被这些任务依赖:
---------------
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.