并发编程

PPG007 ... 2021-12-26 About 1 min

# 并发编程

# 关于并发

  • 并发会在性能和编写额外代码上增加一些开销。
  • 正确的并发是复杂的,即便对于简单地问题也是如此。
  • 并发缺陷并非总能重现,所以常被看作偶发事件而忽略。
  • 并发常常需要对设计策略进行根本性修改。

# 并发防御原则

  • 单一职权原则:分离并发相关代码与其他代码。
    • 并发相关代码有自己的开发、修改和调优生命周期。
    • 并发相关代码有自己要对付的挑战,和非并发相关代码不同,往往更加困难。
    • 写的不好的并发代码可能的出错方式数量也足具挑战。
  • 限制数据作用域:严格限制共享数据的访问。
  • 使用数据复本:?
  • 线程尽可能独立:减少与其他线程共享数据的可能。

# 测试线程代码

编写有潜力暴露问题的测试,在不同的编程配置、系统配置和负载条件下频繁运行,如果测试失败,跟踪错误。

  • 将伪失败看作可能的线程问题。
  • 先使非线程代码可工作。
  • 编写可插拔的线程代码(可在数个配置环境下运行的线程代码)。
  • 编写可调整的线程代码(允许线程数量可调整和变动)。
  • 运行多于处理器数量的线程(为了促使任务切换的发生)。
  • 在不同平台上运行。
  • 调整代码并强迫错误发生。
  • 不要同时追踪非线程错误和线程错误。
Last update: December 26, 2021 13:38
Contributors: PPG007