可重入函数

来源:互联网 发布:windows迁移linux 编辑:程序博客网 时间:2024/06/03 16:09

重入:是指被两个或多个执行流重复进入。
假设在链表向头结点_pHead插入节点_Node1时,插入动作分两步,一是将_Node1->_pNext = _pHead->_pNext,二是_pHead->_pNext = _Node1,如果在完成第一步后,因为硬件中断使进程切换到内核,再次回到用户态前检查到有信号要处理,于是切换到sighandler()函数,sighandler()也调用insert()向链表中插入节点_Node2,插入完成后,返回之前插入_Node1时,执行第二步,将_pHead->_pNext = _Node1,那么_Node2就会丢失。这种函数就被称为不可重入函数。
可重入函数:如果一个函数只访问自己的局部变量或参数,就称为可重入函数。
这里写图片描述

原创粉丝点击