内卷老员工之并发模型

312 阅读2分钟

这是我参与8月更文挑战的第11天,活动详情查看:[8月更文挑战]

并发模型

  • 并发系统可以使用不同的并发模型实现,并发模型指定系统线程如何完成任务。不同的并发系统以不同的方式拆分任务,线程以不同的方式通信和合作。

并发模型与分布式系统的相似性

  • 并发系统与分布式系统具有一定的相似性。并发系统中,不同的线程互相通信。分布式系统中,不同的进程互相通信。
  • 当然,分布式系统要面临网络故障、服务器宕机等挑战。而并发系统则要面临cpu、网卡、磁盘故障等问题。
  • 并发系统中的线程工作模型又与分布式系统中的负载均衡模型异曲同工。

共享状态与分离状态

  • 并发模型的一个重要方面是,组件与线程是否被设计为共享状态,或者具有从不在线程之间共享的分离状态。
  • 共享状态是指系统的不同线程将在他们之间共享某些状态。状态是指某些数据,通常是一个或多个对象。当处于共享状态时,可能会存在竞争和死锁。

image.png

  • 分离状态是指不同线程之间不存在任何共享状态。如果两个线程要通信,那么要么在他们之间交换不可变对象,要么发送对象的副本。 image.png
  • 使用单独的状态并发设计通常可以使代码的某些部分更容易实现和推理,因为您知道只有一个线程会写入给定的对象。您不必担心对该对象的并发访问。但是,您可能必须更仔细地考虑大局中的应用程序设计,以使用单独的状态并发。不过我觉得还是值得的。我个人更喜欢单独的状态并发设计。

常见的几种并发模型

常见的并发模型主要有以下三种:

  • 并行工作者并发模型
  • 流水线并发模型
  • 函数式并行并发模型 三种模型的具体内容,将在后续文章中拆分详细讨论。

后记

  • 千古兴亡多少事?悠悠。不尽长江滚滚流。