面朝大海,春不暖,花不开
2021-08-12 16:14
采纳率: 0%
浏览 55

多个线程,同时调用一个方法,是否会导致方法所计算的结果不一致

定义了一个方法,该方法会传入参数,且方法内会根据该参数进行操作!然后定义一个比较大的list,通过多线程的方式调用该方法,会不会产生数据不一致的情况?
代码如下:

img

img
如上图所示,所有的线程都会调用addTwoNum方法,想知道如何线程一起执行到addTwoNum后,如果上一个线程还未计算结果,是否会改变之前的值,从而导致最终的数据不一致!

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • zlebhs 2021-08-12 16:21

    锁,最简单的直接加个synchronized

    评论
    解决 无用
    打赏 举报
  • baidu_30233079 2021-08-12 16:37

    不会,你的方法是线程安全的,里面操作不依赖任何外部数据,只和入参相关。
    楼上的不懂不要乱说

    评论
    解决 无用
    打赏 举报
  • 饶小乖 2021-08-12 17:23

    就看到的代码来说,虽然是多线程,但是每个线程处理的数据不同,不存在共享数据问题,不用加锁。。。
    还有楼上说的对,方法里的局部变量是线程安全的,每次执行方法都会重新生成新的变量,不会有干扰。

    评论
    解决 无用
    打赏 举报
  • 咕泡-松阳 2021-08-23 13:22

    方法里的局部变量,天然就具有线程安全性,因为他们都是在虚拟机栈中被处理的

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题