多线程根据map.size()大小添加线程处理结果不全问题

今天的一个项目中,使用到多线程,但是出现了一个极其诡异的错误。

原理:一串文本类似css被解析成了map集合,根据数量添加线程。多线程任务是解析其中含义对文字改变样式,如果解析完就将这对key和value移除

代码片段:

这是多线程内部操作(具体操作部分没有截图,主要是map集合这段)

 

之后就出现了:

五个css样式只能解析四个或者三个,修改多线程这边一点用都没有!

经过半天的寻找,最终锁定了问题:

多线程和for循环是同步执行的,for循环还没循环到最后,map集合中有些元素已经被移除,这就导致for循环循环map集合变短了,因为创建的线程数量少于实际css的key-value对数量,所以有一部分属性就没有被成功解析。

修改:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员麻薯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值