重入的问题
拋出個問題
有一個定時器,定時時間是1秒,然后里面有一個執行函數,里面的函數有時候執行500毫秒,有時候執行2秒,如果是這樣的話,有沒有問題,如果有問題,要怎么解決?
先說上面中斷的問題
我之前寫過一篇文章,專門說中斷的,我又想起來之前說的那個重入和不重入的問題了,我們做軟件設計的一定要考慮這個問題,就比如中斷,因為工作很久了,遇到了很多芯片,了解有些CPU可以重入,有些芯片設計的中斷不可以重入,我們寫代碼要特別注意這個。
如果不可以重入的中斷,我們在進中斷第一件事情就是關閉中斷,然后再做自己的事情,做完后記得開中斷就好了,這個是比較正常的做法。
加鎖也是可以解決這個問題,關于加鎖不加鎖要看情況,我們還有一個變量volatile,這個變量會告訴系統,如果變量在進行賦值的時候,就不要中斷啦,就是避免數據在修改的時候中斷導致問題。
如果是可以重入的中斷呢?那上面的代碼就沒有問題了,因為上面的程序肯定是先執行完中斷函數里面的內容,中斷返回了,才會接收下一次中斷信號的。
函數調用呢?
既然中斷有問題,函數調用肯定是也有問題的,我分開來說,我最近比較忙,就沒有時間畫圖出來了,隨便聊聊,大家覺得哪里我說的不對,就留言回復,我們一起討論,有疑問也可以留言下,想支持我的,想上墻讓大家認識你的,想表白的,都可以留言。<
總結
- 上一篇: PHP常用函数归类总结【大全】
- 下一篇: python定时任务apschedule