iteye_3440
2014-07-31 14:45 阅读 1.3k
已采纳

java方法内调用方法,参数传递对象是否线程安全

按自己的理解,线程执行,其中基本数据类型是放置于stack中,但引用堆中对象,当在方法中调用其他方法参数为对象时,是否每个对象针对线程唯一,是否线程安全,求赐教
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    chl87783255 HS_Henry 2014-08-01 14:53

    在你的例子中,每个user被封装在单独的thread中,即线程封装,这样是安全的。
    原因:无共享内存的操作。

    “线程内对象创建是否生命周期也是随线程结束而结束”,答案:在线程外该对象未被引用,线程结束后,该对象可视为已无用/已结束,后续GC将回收(与局部变量一样)。

    另:
    建议去看看并发编程的书吧。

    点赞 评论 复制链接分享
  • ThinkingQuest ThinkingQuest 2014-07-31 15:20

    方法调用和线程有什么关系,又没有启动新的线程。
    传递的是对象的引用。指向对重的对象,只有一个。 线程不安全。

    点赞 评论 复制链接分享
  • lorewolf311 tianchao_ 2014-07-31 16:15

    看你的对象是否多线程共享的,如果不共享肯定安全!

    点赞 评论 复制链接分享
  • chl87783255 HS_Henry 2014-07-31 16:18

    引起线程安全的考虑,其前提是:共享内存(共享对象),且对其进行修改。
    若多线程访问共享对象,但不修改其属性,则不需考虑线程安全;
    若多线程操作共享对象,即修改其属性,则须考虑线程安全。

    另针对“每个对象针对线程唯一”问题:
    若传递共享对象,则不唯一;
    若传递非共享对象,则唯一。

    点赞 评论 复制链接分享

相关推荐