以下为这几种方法的比较:
可读性和编程容易性方面,第三钟方法最好(如果允许使用goto语句,程序更加简单易读),第二种次之(因为要编队列程序),第一种最差。如果协议更加复杂,这方面更加明显。程序简单易读,自然出错机会小了。
RAM占用方面,第三种方法较少,第二种最多(因为队列占用大量空间),第一种最少。
中断执行时间方面,第三种方法最长,第二种最短,第一种较长。
从功能方面,第三种方法最强,它还可以进行超时处理(虽然例子程序没有),其它方法均不行。
如果数据来的太快,命令处理程序来不及处理,三种方法处理方式不太一样,第一种和第三种方法类似:丢弃以前数据,第二种则是丢弃后到的数据。而且,第二种方法必须等命令处理程序完成后才处理下一个数据包,而第一种和第三种方只需命令处理程序将数据收取后就可处理下一个数据包。也就是说,第一种和第三种与命令处理程序并行处理,第二种方法为串行处理。
|