在学习编程的时候,一直有一些概念很困扰,有些东西一直在用,但是要具体说个所以然,还真是有点说不清楚。比如callback ,中断(interrupt) 和事件(event)的关系,这只是碰到疑问中的其中两个。
中断是底层编程必定会遇到的东西,从底层编程来说明的话,芯片上程序在跑,突然芯片引脚来了个信号,芯片接受到了这个信号,把程序跳转到新的一块代码去执行。原先的在跑的代码就不跑了,也是就说被正在执行的代码被这个信号给中断了,这就是中断了。
跳转的这个行为是个硬件行为,软件没法控制,把新跳转到的代码块执行完了之后,又回到了刚才被中断的代码块。不考虑中断嵌套的情况,(就是已经在中断中,又来了个中断)。
中断来了就跳转这个是硬件行为(硬件电路决定),那中断什么时候返回就是软件行为了,为什么这么说。因为中断跳转的动作是硬件实现,但是跳转的目的地和目的地的代码是什么,这些全是程序员控制。程序猿说,不回去了就回去了,去别的地方也可以。具体看代码实现。这个很复杂了,也很灵活(各种os 就是使用这种机制来实现进程或者线程的切换)。这个需要保存很多状态,反正很复杂,我不懂。
说完中断,那么来说说event ,为什么要说event ,书上说事件是异步操作的基础,可以提高系统性能和效率。也就是你在比较复杂点的系统开发,都会对event 进行支持。也就是说,在有OS的环境下编程,你应该会碰到类似的,叫做