emmm最后一个例子在说明什么

来源:5-3 线程安全问题

qq_慕丝3367668

2020-04-01 13:38

用一个list转为并发流,又用Collectors转回普通的list,你既没有remove 也没有add 在说明什么问题呢?

写回答 关注

2回答

  • 送外卖
    2020-04-04 21:29:52

    因为多个线程同时可能都处理了同一条数据,比如线程1和线程2,cpu先分配线程1处理数据,线程1处理到第20个数据时,还未处理完,cpu分配时间到了,然后cpu分配任务给线程2,因为没有同步锁,线程2又把第20条数据add进去了,接着线程2时间到了,轮到线程1,他会接着走他的没走完的那条数据,又会把20add进去,大概就是这个意思,这就是线程不安全和安全的问题,老师说了可以使用同步锁代码块来解决,或者从数据源开始就使用线程暗转的集合

  • qq_慕丝3367668
    2020-04-01 13:40:22

    http://img2.mukewang.com/5e84291d0001bcab09770658.jpg

    补充一下,这里不太明白为啥数组越界了

一课掌握Lambda表达式语法及应用

深入浅出,快速掌握Lambda表达式“如何用”“怎么用”

6618 学习 · 58 问题

查看课程

相似问题