# Summary
# Notes
## 是什么
想象你是CPU(处理器),正在按部就班地执行程序指令。这时候:
- 键盘被按下了
- 鼠标移动了
- 硬盘读取完成了
- 网络数据到达了
这些事件都需要CPU的注意,但CPU不可能一直盯着它们等待。所以这些设备会给CPU发送一个"中断信号",就像拍拍你的肩膀说"嘿,我这里有事需要处理!"
## 为什么需要中断?
如果没有中断,CPU就得不停地做「软件轮询」检查:"键盘有输入吗?鼠标动了吗?"这样非常浪费时间。有了中断机制,CPU可以专心干活,只在真正有事情发生时才被"打断"一下,效率高多了。
简单说:**中断 = 硬件/软件给CPU发的"紧急通知",让CPU暂停当前工作去处理突发事件。**
## 软件轮询(没有中断机制)
```c
while(1) {
if (检查键盘有数据()) { // 需要执行I/O指令
处理键盘();
}
if (检查鼠标有数据()) { // 需要执行I/O指令
处理鼠标();
}
if (检查硬盘完成()) { // 需要执行I/O指令
处理硬盘();
}
// ...检查N个设备
}
// CPU一直在这个循环里空转,啥正事都干不了
```
## 硬件中断
```c
// CPU正常执行程序
执行指令1;
[硬件自动检查中断引脚] // 几乎零成本
执行指令2;
[硬件自动检查中断引脚]
执行指令3;
[硬件自动检查中断引脚] // 发现有中断!→ 跳转处理
// CPU 99.9%的时间在干正事
```
编程的男生,打断他一下,他会很生气吗?- 小芋的回答 - 知乎
https://www.zhihu.com/question/459004684/answer/2150801935
# 2. "任务中断"和"暂停中断"对大脑影响不同
- **任务中断**:
指在休息时"换了个活儿干"(比如刷视频、看社交媒体、处理其他杂事)。这种情况下,大脑实际上进入了另一个任务的认知和注意状态,主任务表征被进一步抑制或覆盖,回来后需要花更多时间重新激活。
- **暂停中断**:
指休息时暂时"什么都不做",或者只做与主任务弱相关甚至无关但不占用注意资源的事(如静坐、发呆、短暂小睡等)。大脑虽然停止了主动思考,但没有被新的任务干扰,可以相对容易地回到主任务情境。
**背后的思想**:
> "休息"并不等于"放空主任务的注意"。如果休息时又接触了别的复杂信息,大脑的工作记忆相当于被"清空并且换装",导致回归主任务时注意力、记忆激活都要从头再来。
# 3. 干扰对不同难度任务的影响:简单任务 vs. 复杂任务
- **简单任务中的"中断加速"效应**
如果任务本身操作性强、步骤简单、内容重复,那么短时中断反而可能提高觉醒水平,让人回来后更"振奋",执行速度更快,错误率可能并不会明显上升。
- **复杂任务中中断带来更多负面效应**
对需要深度思考、连续推理、高度专注的内容(比如高数、写论文、写代码等),中断会让你前面理好的脉络断掉,需要更多时间"找回思路",还容易增加错误率和心理负担。
**背后的思想**:
> 是否要主动"打断"自己,与当前任务特性相关。若是枯燥机械的重复类任务,可以有意在不同小任务间切换,提高总体效率;若是需要高专注、高连贯度的任务,减少无关中断才能发挥最好的效果。
# 4. 疲劳会放大中断的消极影响
- **疲劳状态下更难重拾思路**
当人已经疲惫时,无论是任务中断还是暂停中断,都会让恢复过程更艰难;加之注意力本就不足,回到主任务的激活速度大幅减慢。
- **疲劳与中断的双重叠加**
如果你已经很累了,还频繁被消息提醒、社交媒体等外界因素打断,大概率越做越烦、越做越没效率。
**背后的思想**:
> 大脑在疲劳时,本身的"运行内存"效率更低,注意系统也更容易被外界信号劫持,此时**最好避免"中断式休息"**,要么短暂补眠,要么迅速做个"暂停式休整",而不是再去看新信息或处理其他复杂任务。