stringBuilder对象里为什么刚创建就有数据呢?需要清除

stringBuilder对象里为什么刚创建就有数据呢?需要清除

 StringBuilder stringBuilder = ThreadSafeStringBuilder.stringBuilderThreadLocal.get();

       stringBuilder.delete(2,stringBuilder.length());


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿园 2021-08-13 17:01:40

同学你好,这里并不是表示刚创建就有数据,而是清除之前在数字后拼接的“数字(123等)”

如果不清除之前的数据,则10个线程运行完毕后会在后面进行拼接,如下

http://img1.sycdn.imooc.com//climg/6116305709298ad601160214.jpg

祝学习愉快~

  • 提问者 qq_慕神0589333 #1

    就是线程运行之前怎么有数据了0,1,2。。。。?

    2021-08-13 20:51:53
  • 好帮手慕阿园 回复 提问者 qq_慕神0589333 #2

    同学你好,项线程运行前是没有的,只有运行的时候才会有,线程运行时会将数字添加到StringBuilder中,如下

    http://img1.sycdn.imooc.com//climg/61172100093761a307120058.jpg

    祝学习愉快~

    2021-08-14 09:49:13
  • 星岳神话 回复 提问者 qq_慕神0589333 #3

    程序设置的线程数是10个, 总共循环20次, 当循环前10次的时候,创建十个线程, 同时每个线程分别创建与之对应的threadLocal,然后去执行任务,执行完成后,进入了下面的循环,不用创建新的线程,进行线程复用,同时使用了之前创建的threadLocal,所以前10次循环的数据还保存在StringBuilder里面 ,所以需要清除。

    2022-02-16 09:32:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师