文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>可重入函数

可重入函数

时间:2011-05-31  来源:SimonBlog

可重入函数

Y=f(x)

如果2次顺序调用,其结果不同,那么不是可重入的。

这是说的单线程,2次调用情况。这是程序员有意调用,它设计这个函数就是为了有状态。

例子就是局部static变量。

还有一类问题是 多线程,就是不是有意调用2次,而是无意中调用。并发调用,谁先谁后不知道,但是后调的,结果不是预期的。C库里面很多使用静态变量的如gethostname就是这个问题。

可重入函数的本质在于,函数是有状态的。2次调用,是不同的状态。

真实世界存在这样的模型,需要用有状态函数模拟。

事实上,object就是有状态的例子,它的data member你可以看作是状态,不同的member function就是 不可重入地、共享状态的一堆函数。

Object本质是围绕共同数据的一堆函数,共同数据是堆上面的一块内存,this

这堆函数间是有关系的,有顺序关系,最初状态的初始化,在构造函数里面完成。

真实的世界是,一个CD机要唱歌,先要加电,不加电时,点击下一首,没有用,因为没有进入“已加电”状态。这类东西,用object很容易模拟,因为模型和真实,对应很明显。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载