【发布时间】:2020-09-09 03:14:24
【问题描述】:
如果多个 Timer/Future 在 Dart 中同时完成,会出现竞态条件吗?例如,以下代码中的 Timer 完成处理程序中访问 test 和 test 结构时是否存在竞态条件?
import 'dart:async';
void main() {
Map<String, int> test = {};
List<int> test2 = [];
Timer t1 = Timer(Duration(seconds: 1), () {
test['a'] = 45;
test2.add(1);
});
Timer t2 = Timer(Duration(seconds: 1), () {
test['b'] = 67;
test2.add(2);
});
Timer t3 = Timer(Duration(seconds: 2), () {
print(test);
print(test2);
});
}
或者主线程同步处理定时器/未来完成?两个回调中的代码可以交织吗?
【问题讨论】:
标签: dart race-condition