使用ThreadLocal定义c的问题

来源:2-4 Thread Local并发场景分析01

慕丝6259181

2020-03-06 14:02

c不是线程独有的吗,线程并发计算g各线程独有的c.add,为什么最后c.get时却是个累加的数,不应该都是1吗?

写回答 关注

3回答

  • weixin_慕桂英0137301
    2020-03-07 16:21:52
    已采纳

    每个线程中,计算的都是本身进行了add的和。因此,最后把所有的线程中的值取出,求和。就是最后的总和。

  • 慕丝6259181
    2020-03-10 11:36:07

    谢谢,我之前不清楚,原来spring一直用线程池里那几个线程来处理请求,也就是这些线程并发处理各自的c+1,最后各自的c加起来就是10000

  • weixin_慕桂英0137301
    2020-03-07 16:19:59

    在set中存储了各个线程中的值。然后使用java8的流操作,进行合并求和,reduce就是对流中的数据,进行计算。

    慕丝6259...

    谢谢,我之前不清楚,原来spring一直用线程池里那几个线程来处理请求,也就是这些线程并发处理各自的c+1,最后各自的c加起来就是10000

    2020-03-10 11:36:21

    共 1 条回复 >

ThreadLocal

设计者视角源码级ThreadLocal分析教你建立线程安全感-你专属的技术优越感

14065 学习 · 32 问题

查看课程

相似问题