深入理解 Swift 新并发模型中 Actor 的重入(Reentrancy)问题

深入理解 Swift 新并发模型中 Actor 的重入(Reentrancy)问题_第1张图片

问题现象

我们知道,Swift 5.5 引入的新并发模型极大简化了并行逻辑代码的开发,更重要的是:使用新并发模型中的 Actor 原语可以大大降低并发数据竞争的可能性。

不过,即便 Actor 有如此神奇之功效,它也不是“万能药”,仍不能防止误用带来的问题。比如:Actor 重入(Reentrancy)。

Actor 重入会引起 Actor 内部状态不一致,从而导致执行可能会有严重的偏差!

学完本篇博文,您将掌握如下内容:

  • 问题现象
  • 1. 一个简单的例子告诉你什么是 Actor 重入!
  • 2. 一个更实际的例子
  • 3. Actor 自带线程安全光环为什么还会引起重入问题?
  • 4. 解决之道
  • 5. 总结
  • 结束语

对于并发中可能遇到各种“千奇百怪”的问题,没有所谓“一招鲜吃遍天”的解决方案,更没有“银弹”!相信学完本篇,我们能更加自如的量体裁衣,以不变应万变,将所有问题消弭于无形!

你可能感兴趣的:(开发疑难秒懂百科,swift,async/await,并发,Actor,Actor,重入,Reentrancy,data,race)