问答详情
源自:2-4 Thread Local并发场景分析01

使用ThreadLocal定义c的问题

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

提问者:慕丝6259181 2020-03-06 14:02

个回答

  • 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就是对流中的数据,进行计算。