想象我们有一个像这样的对象
class Foo {
List<int> data = [];
void addAndCheck(int n){
for(int number in data){
// check something
}
data.add(n);
}
}
并且想象我们产生了很多这样的订阅
Foo foo = Foo();
for(int i = 0; i++; i<10){
subscriptions.add(api.someRandomStream().listen((response){
foo.addAndCheck(response.value);
}));
}
就目前而言,如果运行此代码可能会起作用,但是只要流大约在同一时间开始发出流,我们就会收到异常:Concurrent modification during iteration
原因是for循环,但是如何解决此问题?在像Java这样的语言中,有类似ConcurrentHashMap,Collections.synchronizedList(...)之类的东西。
想象一下,我们有一个像此类的对象Foo {List
如果在迭代过程中遇到并发修改错误,则说明您正在循环内执行asynchronous