章节列表

任务的删除

2018-01-12 09:42:05 +0000 李述铜

本小节介绍怎样去删除一个任务。在很多应用中,删除任务的需求并不存在,因为在任务创建后会一直运行下去。但在某些情况下,就需要用到这个功能。

从实现上讲,删除功能不难实现。但是你在学习时要注意删除任务时,对任务当前状态的影响。这也是课程中所强调并且提供了两种不同删除方式的原因!

主要内容

删除原理

要实现任务的删除,最简单的方式就是将任务从所在的队列中移除。这个队列可能是如下图所示的优先级队列、延时队列,也可能是在后面课程中所讲到的等待队列。

移除之后,可能还会做一些其它的回收操作。不过,我们实现比较简单,只是简单的从队列中移除,甚至没有标记tTask结构为Destory状态。所以这些额外的操作,如需求,你可根据实际的情况酌情添加。

删除方式

课程中实现了两种删除方式:强制删除、请求删除。主要考虑到了当需要删除时,删除动作可能对任务的当前运行状态产生的影响,因为此时任务可能打开/占有了某些资源,粗爆的强制删除可能会导致资源无法释放。

这两种方式在使用上各有优缺点。

重点难点

本小课程的重点在于理解两种任务删除方式的由来、原理、优缺点比较。

注意事项

常见问题