1 模块结构化
2 模块的事件驱动机制——其实也可以说是 标志驱动机制
3 在标志驱动机制的基础上,按照优先级分为 顺序轮询 和 优先轮询,这种机制,其实就是相当于提前continue循环;
4 中断的前后台——张俊把中断程序称为前台,把主程序成为后台,这里说的是 安排中断执行和主流程执行。
两个极致是:
只有 前台 或者 只有后台。
5 时间片和分时调度:这个,我知道怎么玩,但没玩过……
第四种方法,是我现在最常用的,也遇到了张俊说的问题:那就是前后台中都有对实时性有要求的任务,于是互相抢夺CPU——对我而言,最明显的是,使我的主流程循环时间过长。
6 多线程机制
这种多线程非C里头的那种多线程,其手法是,把一个子任务分时段进行,把一些等待延时的部分,留给CPU去做别的事情,说起来,我们的那个数码管扫描程序,其实就是这种思路。
7 多工序
其实,这就是 状态机 的思路,我也用到过了,的确很好,方便区分,否则,如同匠人所说,那么多乱七八糟的状态和标志,会疯掉的——而我也的确疯过……
这种 类似于 状态机 的思路当然也有危险之处:那就是他可能有多个出口和入口……
8 状态机
张俊区分了 多工序 和 状态机,以至于让我看不懂了多工序,不过如此看来,我使用的正是 状态机 方法。
9 更复杂的划分:把上述这些思路看成一维情形,更复杂的就是更高维度的综合应用了。
简单才是最有效的,尽可能单维,单级……哭啊,这绝对是经验之谈啊!!