# parallel_task **Repository Path**: weiyifan/parallel_task ## Basic Information - **Project Name**: parallel_task - **Description**: 魏先生毕业设计 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # parallel_task #### 主要的变更 要求支持实现分层依赖和树状依赖。 这个问题的本质实际就是任务顺序的编排问题,通过分析可得出4中基础的任务编排方式,其余的情况都是这四种编排方式的组合。 1、 全串行 这是最简单的一种编排方式,只需要按照顺序依次执行即可。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0424/171207_8109cc2f_4861509.png "屏幕截图.png") 2、 全并行 这个也很简单,单纯的并行执行。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0424/171213_982c83cb_4861509.png "屏幕截图.png") 3、 先串后并 这种编排方式相对于前两种较为复杂,通俗来说就是一个任务的next指针指向了两个或两个以上的任务。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0424/171217_d84a5491_4861509.png "屏幕截图.png") 4、 先并后串 这种编排方式是最复杂的一种编排方式。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0424/171222_e9a64c2a_4861509.png "屏幕截图.png") 第一种情况,B,C,D并行执行,B,C,D都执行完毕之后A才可以执行,这种很好理解。 第二种情况,B,C,D并行执行,其中一个或者多个执行完毕之后A就可以执行。等到剩余的任务完成之后,依旧执行A,但是会进行判断是否及已经执行过了,如果执行过了就什么也不做,直接结束。 第三种情况,B,C,D并行执行,其中任意一个任务执行完毕之后A就可以执行,剩余的任务完成时,A已经执行,但是会进行判断A是否已经执行过,如果执行过了就什么也不做,直接结束。 这里解释第二种和第三种的区别,这里引入“强依赖”这个概念,情况一是A强依赖B,C,D;情况二是A强依赖B,C,D其中部分;情况三是A不强依赖B,C,D种任意一个。 主要的变更在第四种情况(TaskPool) #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)