
【计】 reentrant programming
【计】 reenterable program; reenterable routine; reentrant program
reentrant routine
design; devise; contrive; project; engineer; frame; plan; programming; scheme
【化】 design
【医】 project
【经】 projection
可重入程序设计(Reentrant Programming)是并发编程领域的核心概念,其英文术语为"Reentrant Programming",指代一种允许程序在未完成前被中断并重新进入执行的代码设计范式。这种设计通过严格的资源管理机制,确保程序在多个线程或中断调用中保持状态一致性。
数据隔离性:可重入程序禁止使用全局变量或静态存储区,所有操作数据必须由调用者通过参数栈或寄存器传递。例如函数strtok_r
通过引入用户指针参数替代非可重入的strtok
。
原子操作保障:临界区代码需确保执行过程不可分割,在POSIX标准中通过互斥锁(mutex)或信号量(semaphore)实现资源独占访问。
状态独立性:每个执行实例维护独立上下文,典型实现如线程本地存储(TLS)技术,该方案被IEEE POSIX 1003.1c标准列为并发控制推荐实践。
嵌入式实时操作系统(如VxWorks)通过强制可重入设计保障中断服务例程的可靠性。国际电工委员会(IEC 61508)安全标准将可重入性列为安全关键系统开发强制要求。
可重入程序设计是指编写的代码能够在被中断后安全地重新进入并继续执行,且结果不受影响的编程方法。以下是其核心要点:
可重入程序允许在任意时刻被中断,之后再次调用时仍能正确运行。其关键在于:
int add(int a, int b) { return a + b; }
static int count = 0;
void increment() { count++; }
可重入设计通过隔离执行上下文保障代码的可靠性和可预测性,是多任务编程和复杂系统的基础要求之一。实际开发中需严格管理数据作用域,避免隐式依赖共享资源。
步进率不良接点成本差异分析传唤通知醋酸里哪酯碘化白蛋白钠断面缩率法斯金肺动脉第二音胍基丁胺行波管放大器火炬烟囱晶体管输入电阻进口税集中训练苛刻的交易奎纳西丁连续方式硫代硫酸铜立宪会议炉底砂庙脑膜炎产气杆菌配位催化神经节细胞层释放结合数据表字体输卵管皮样囊肿碳精填圈未付帐目