ArrayList是非线程安全的。
问题描述
开发中,存在这样的业务逻辑,类似倒金字塔结构,下层数据需要基于上层的数据进行逻辑计算。设计思路是:定义一个全局变量upLayerList,来保存上一层的数据。每一层计算仅需要知道upLayerList就可以,不用关心上一层数据怎么获取。当前层计算完毕后,把结果赋值给upLayerList,留给下一层使用。
问题重现
模拟业务逻辑实现:
实现多线程:
正常的输出:
Runner1 : [1, 2, 3]
Runner2 : [4, 5, 6]
实际输出: