抛出个问题
有一个定时器,定时时间是1秒,然后里面有一个执行函数,里面的函数有时候执行500毫秒,有时候执行2秒,如果是这样的话,有没有问题,如果有问题,要怎么解决?
先说上面中断的问题
我之前写过一篇文章,专门说中断的,我又想起来之前说的那个重入和不重入的问题了,我们做软件设计的一定要考虑这个问题,就比如中断,因为工作很久了,遇到了很多芯片,了解有些CPU可以重入,有些芯片设计的中断不可以重入,我们写代码要特别注意这个。
如果不可以重入的中断,我们在进中断第一件事情就是关闭中断,然后再做自己的事情,做完后记得开中断就好了,这个是比较正常的做法。
加锁也是可以解决这个问题,关于加锁不加锁要看情况,我们还有一个变量volatile,这个变量会告诉系统,如果变量在进行赋值的时候,就不要中断啦,就是避免数据在修改的时候中断导致问题。
如果是可以重入的中断呢?那上面的代码就没有问题了,因为上面的程序肯定是先执行完中断函数里面的内容,中断返回了,才会接收下一次中断信号的。
函数调用呢?
既然中断有问题,函数调用肯定是也有问题的,我分开来说,我最近比较忙,就没有时间画图出来了,随便聊聊,大家觉得哪里我说的不对,就留言回复,我们一起讨论,有疑问也可以留言下,想支持我的,想上墙让大家认识你的,想表白的,都可以留言。<