局部变量线程安全问题

求大神给解释下局部变量线程安全问题


java Java全栈+大数据工程师培训

javajava基础,Flume,Zookeeper实战,MetaStore及Hive执行流程剖析,Spark调优,轻松入门机器学习,免费试听申请!

2018-01-10 15:35 广告
有人吗


局部变量没有线程安全问题,不用解释了


收起回复
  • 3楼
  • 2016-02-01 14:35
单例里面存在成员变量才会有线程安全问题,局部变量跟这有什么关系!


收起回复
  • 4楼
  • 2016-02-01 15:20
  • 局部变量线程安全问题
    mincike可以看看图片,我知道局部变量没有现成安全问题,但图片里的打印结果 我开始怀疑 局部变量线程安全是否是对的
    2016-2-1 15:25回复
  • 局部变量线程安全问题
    mincike经多次测试应该uuid内部在线程并发的时候 不做同步的情况下是会产生重复的uuid
    2016-2-2 22:21回复
  • 局部变量线程安全问题
    仰望星空Json回复 mincike :还有这种情况,学习了
    2016-2-3 10:09回复
  • 我也说一句

     

这是偶然吧 uuid不会主动检查是否重复的 小概率事件


这个问题在于你的变量是否被多个线程同时访问的条件,显然,你的这个变量是局部变量,但是你在局部方法块中创建了其它线程,而且其它线程可以访问到你的这个局部变量,所以会出现线程安全问题,解决这个问题你可以把你的变量创建成线程安全类


收起回复
  • 6楼
  • 2016-02-02 08:45
  • 局部变量线程安全问题
    mincike我知道我的那个testlog是线程不安全的,它是多个线程共享的,我想说的是uuid ,经最终多次测试uuid在并发调用下产生的uuid是会重复的,导致了上述打印结果
    2016-2-2 21:59回复
  • 局部变量线程安全问题
    mincike针对产生uuid的代码做syncharnized测了很多次倒是没见重复的
    2016-2-2 22:02回复
  • 我也说一句

     

静态类成为了一个全局变量,你得看看uuid中是否有成员变量没有做线程安全限制


收起回复
  • 7楼
  • 2016-02-02 13:31
  • 局部变量线程安全问题
    mincike回头自己研究下 uuid的源码
    2016-2-2 22:17回复
  • 局部变量线程安全问题
    yan396986015回复 mincike :线程安全主要是看有没有数据共享,而使用静态类就会变成全局共享,所以会有线程安全隐患,想要安全就得加锁
    2016-2-3 13:50回复
  • 我也说一句

     

感觉应该是uuid内部的问题.
突然想起了,当初学习汇编的时候,调用函数和传递形参
一个函数调用时在汇编是:call xxxxx
调用函数,传参数,局部变量都是压到栈中的
每调用一次函数,都要往栈中压一次局部变量,函数执行完成,栈就回收了.


所过多次调用函数,那么栈中就有多个局部变量.

相关文章:

  • 2021-09-23
  • 2021-07-28
  • 2022-12-23
  • 2022-12-23
  • 2022-02-06
  • 2021-11-17
  • 2021-06-09
猜你喜欢
  • 2021-08-08
  • 2021-06-27
相关资源
相似解决方案