上节课我们讲了什么是时序以及时序控制,提到了时序变化可能导致各种问题。这节课微米老师给同学讲解如何规避时序变化引发的问题。
时序变化,是指在不同的条件下,相同操作的执行时间不同。这里的不同条件,不仅指外部环境,比如温湿度等,还包括被更高优先级的事务打断。
回到小明小红小强三个人协作摘苹果的例子。小明在摘苹果的过程中,来了电话或者有人过来找小明,小明会把摘苹果的工作暂停,优先处理接电话的工作,这就是被高优先级事务打断的情况。
接下来,回到本节我们要解决的关键问题:如何规避时序问题。
针对外部环境引发的问题,首先要评估软件工作的外部环境是怎么样的,比如工作的温度范围、湿度范围等,然后通过设计或试验,确保在整个温度范围内时序均能满足,比如选择好的材料和器件,通过环境试验进行验证等。现在同学们就能理解,为啥普通家用电脑只用几千块,但是卫星和火箭上的专用计算机却价值几十上百万。普通家用电脑只能在常温下工作,而专用计算机可以工作在零下四五十度到正六七十度。
针对被高优先级事务打断的情况,在做关键操作时可以暂时屏蔽外界高优先级事务,等处理完当前事务后再去响应。
此外,条件允许的话,也可以采用我们上节课提到的闭环控制策略,确保上一步成功后再进行后续的操作。此外,为了避免一直不成功出现死等的情况,还要设计超时退出机制,退出后通过报错和重试进行规避问题。
同学们在学习和生活中也可以借鉴软件的设计理念,确保每一样事情都做好做到位,遇到问题要尽力解决问题,把基础打扎实。遇到实在解决不了的问题,及时寻求老师和家长的帮助。
好了,今天的课就讲到这里了,感谢同学们的观看。
扫码参与评论与作者和更多用户交互