多线程处理介绍

简介

当考虑一些复杂的过程时,我们称之为工作流,它的各个部分可能会以不同的方式运行。

有时行动一个接一个地进行,有时它们以随机的顺序相互重叠,有时事情同时并行。

工作流可以以不同的方式发展。

工作流执行顺序有三种类型:同步、异步和并行。


同步工作流

有许多模型可用于管理客户流。最简单的方法是一家商店和一个卖家。

卖方从每次销售的开始到结束与每个客户打交道,履行从店主到收银员的所有角色。

image-20220930161337955

当同时有很多客户时,这种方法远非完美,因为卖方每次只能与一个客户打交道,而其他人必须排队等候。

它们逐个分别为每个客户提供服务,这意味着只有在完成当前客户后才开始为下一个客户提供服务。

我们将这种类型的操作命名为同步操作。

同步工作流非常常见。

如果大多数活动的目标是取得一些具体成果,它们就应该同步进行。


异步工作流

让我们想象一下,我们的老店变得更高档了,现在这是一家披萨店。

在第一个客户订购比萨饼后,他们需要等待它煮熟。

此时,卖方将第一个客户单独放置一段时间,现在第二个客户可以下订单,然后是第三个客户,依此类推。

image-20220930162957569

当第一个客户的比萨饼准备好时,卖方返回给他们以完成销售。

这就是这个故事一次又一次地重复的方式。

我们的老朋友卖家可以在重叠的时间内同时为多个客户提供服务。

我们将此类行为称为异步行为。

这种行动经常在需要等待时出现。

想象一下,你在飞行时在飞机上阅读,或者你在做饭的时候洗碗;这些活动对是异步的。


并行工作流

随着披萨店的销售额不断增长,现在一个工人不足以完成整个业务。

所以,我们应该雇用几个。

如果每个卖家都有一个单独的紧凑型烤箱,用于一次只准备一个比萨饼,那么我们可以在卖家之间划分买家队列。

image-20220930161714717

现在,它们中的每一个都独立工作,这是并行处理的一个案例。

并行处理中的每个任务都作为整个单元进程在连续的时间段内运行。

仅当有多个执行程序时,才可以并行执行。

超市的收银员是日常生活中并行处理的例子之一,也是高速公路上的例子之一。


总结

  • 同步:一次一个任务,下一个任务在上一个任务完成时启动。
  • 异步:在重叠的时间段内同时执行多个任务,由小部分执行。
  • 并行:多个或一个任务拆分为多个部分,由不同的执行者并行连续执行。
posted @ 2022-09-30 16:32  克峰同学  阅读(86)  评论(0编辑  收藏  举报