# 重入

> 一个函数在执行过程中被中断（如被信号处理程序调用），随后再次被调用。

- ID: m06299
- 分类: system
- 领域: 系统论

## 定义

一个函数在执行过程中被中断（如被信号处理程序调用），随后再次被调用。如果它能正确执行且不破坏之前的状态，就是“可重入”的。前提是：不依赖全局变量，只使用本地数据。脚手架作用： 随时被打断的能力。现代生活充满了中断。要把自己打造成“可重入”的系统：工作时不依赖“某种特定的心境”或“连续的整块时间”（全局变量）。随时被打断，随时能接上，且不出错。

## 机制

重入指程序模块在执行中可被再次中断并安全地重新进入（调用自身），要求不依赖静态共享状态。智能合约语境下重入是典型漏洞。

## 练习

写并发或中断代码时确保函数可重入（用局部状态、加锁）。合约中遵循检查—生效—交互顺序并加锁防重入攻击。

## 脚手架用法

随时被打断的能力。现代生活充满了中断。要把自己打造成“可重入”的系统：工作时不依赖“某种特定的心境”或“连续的整块时间”（全局变量）。随时被打断，随时能接上，且不出错。

[阅读网页](https://thinkingmodels.site/entries/detail/m06299)
