当前位置:C++技术网 > 资讯 > 编程常识:16 重入是什么?

编程常识:16 重入是什么?

更新时间:2015-07-17 09:41:04浏览次数:1+次

    重入指的是,一个函数在执行的过程中,还可以被另外一个地方调用执行。比如递归函数调用,多线程的多个线程同时执行一个函数。重入也就是同时执行一个函数的意思。而可重入表示的是一个函数是否可以同时执行而不出错。如果一个函数执行过程会记录状态,比如使用全局变量记录,或者使用类成员变量记录,然后根据状态执行不同的代码,这样就会导致第一个执行的和第二个同时执行的效果不一样,因为第一个执行的已经改变了状态,导致第二个执行的就是另外一个效果。这样的表示不可重入。
    所以,要让函数重入,请保证不在函数中不可记录状态、将函数独立成一个完整功能体,不与外部交涉。传进去一个参数一定得到一个固定的结果,不管是多少个同时执行都如此。