我在这里有一个假设,但验证起来有点困难。
当两个线程调用同一对象实例的相同方法时,每个调用线程是否有唯一的堆栈帧?在已编译的二进制文件中,我将类理解为在内存中填充函数定义的静态代码部分,不同对象之间的唯一区别是this
在引擎盖下传递的指针。
但是因此调用它的线程必须有自己的堆栈帧,否则两个线程试图访问同一个对象实例的同一个成员函数,将破坏彼此的局部变量。
在这里重申一下,我不是指两个线程是否可以通过同时修改来破坏对象数据this
,我很清楚这一点。我更了解在两个线程同时进入同一个实例的同一个方法的情况下,该上下文的局部变量是否在内存中的相同位置。同样,我的假设是它们不是。