【发布时间】:2012-09-01 15:22:53
【问题描述】:
使用Ruby,当将一个对象传递给一个方法时,这个对象的内存是如何处理的?
来自 C 背景,我能想到几件可能发生的事情:
与相应对象关联的内存副本,可供被调用的方法使用。在这种情况下,对象的修改只会反映在被调用方法的上下文中,而不会调用方法。
对象内存的引用被传递给被调用的方法(本质上是一个指针)。因此,对象通过被调用的方法或调用方法所做的任何更改都将反映在两个上下文中。同样,如果该程序是多线程的,则必须使用某种机制(互斥量、信号量等)来确保对执行写入操作的内存的互斥访问。
其他我想不出来的东西...可能类似于Go...的内存模型...管道...消息传递...?
实际发生了什么?
【问题讨论】: