内容纲要
本小节介绍怎样去删除一个任务。在很多应用中,删除任务的需求并不存在,因为在任务创建后会一直运行下去。但在某些情况下,就需要用到这个功能。
从实现上讲,删除功能不难实现。但是你在学习时要注意删除任务时,对任务当前状态的影响。这也是课程中所强调并且提供了两种不同删除方式的原因!
主要内容
删除原理
要实现任务的删除,最简单的方式就是将任务从所在的队列中移除。这个队列可能是如下图所示的优先级队列、延时队列,也可能是在后面课程中所讲到的等待队列。
移除之后,可能还会做一些其它的回收操作。不过,我们实现比较简单,只是简单的从队列中移除,甚至没有标记tTask结构为Destory状态。所以这些额外的操作,如需求,你可根据实际的情况酌情添加。
删除方式
课程中实现了两种删除方式:强制删除、请求删除。主要考虑到了当需要删除时,删除动作可能对任务的当前运行状态产生的影响,因为此时任务可能打开/占有了某些资源,粗爆的强制删除可能会导致资源无法释放。
这两种方式在使用上各有优缺点。
重点难点
本小课程的重点在于理解两种任务删除方式的由来、原理、优缺点比较。