很多高级的编程语言都会有foreach之类的对数据进行迭代的方式,这类迭代如何用相信不用多言,只是有一点是需要注意的,那就是foreach的线程安全问题,不要在迭代的时候对源数据加入add,romove逻辑,即使被标记为线程安全的,在foreach的时候,增加项和移除项的操作都会导致异常,错误代码示范如下
for(T t : tList){
/*业务逻辑*/
tList.add();
tList.remove();
/*业务逻辑*/这样处理,即使是线程安全的数据结构也会导致异常
)
本文共 306 字,大约阅读时间需要 1 分钟。
很多高级的编程语言都会有foreach之类的对数据进行迭代的方式,这类迭代如何用相信不用多言,只是有一点是需要注意的,那就是foreach的线程安全问题,不要在迭代的时候对源数据加入add,romove逻辑,即使被标记为线程安全的,在foreach的时候,增加项和移除项的操作都会导致异常,错误代码示范如下
for(T t : tList){
/*业务逻辑*/
tList.add();
tList.remove();
/*业务逻辑*/这样处理,即使是线程安全的数据结构也会导致异常
)
转载于:https://www.cnblogs.com/wujunjie/p/5816991.html