java多个线程是共享同一个对象的方法??(多线程的局部变量)

昵称又被注册了 2014-08-18 03:23:17
当两个不同的线程去访问同一个对象的相同方法时!1、内存中只存在一个方法。两个线程进入同一个内存区?还是内存中存在两个相同的方法。两个方法进入不同的内存区?
2、 方法内的变量又是怎样存储的??
...全文
707 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 abc_key 的回复:
使用new创建的对象是放在堆内存的,创建的对象中的方法也是在该堆内存,所有的线程访问这个对象的方法,都是调用的相同内存块中的相同方法,变量存在栈内存中。
懂了。。。当两个线程对象访问同一个方法的局部变量时。每个线程都在自己的栈内存中修改变量。所以互不影响。
ningbohezhijun 2014-08-18
  • 打赏
  • 举报
回复
能给个例子说明下吗,说了半天没听明白
xlight2023 2014-08-18
  • 打赏
  • 举报
回复
使用new创建的对象是放在堆内存的,创建的对象中的方法也是在该堆内存,所有的线程访问这个对象的方法,都是调用的相同内存块中的相同方法,变量存在栈内存中。
skgary 2014-08-18
  • 打赏
  • 举报
回复
引用 2 楼 mxm6868 的回复:
你说的我都知道。代码在代码段和数据在数据段。成员变量是共享的相同的引用。局部变量是都有个拷贝。 只是细节问题不懂。。。
如果没记错,局部变量应该是在栈里,每个线程有自己的栈
  • 打赏
  • 举报
回复
你说的我都知道。代码在代码段和数据在数据段。成员变量是共享的相同的引用。局部变量是都有个拷贝。 只是细节问题不懂。。。
skgary 2014-08-18
  • 打赏
  • 举报
回复
楼主纠结的真心细致。 1. 代码区和数据区是不在一起的 2. 方法内的变量都是两个线程互不相关的,都是局部变量。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧