首页 > 其他分享 >多线程

多线程

时间:2022-09-30 16:45:47浏览次数:50  
标签:异步 一个 并行 客户 卖家 卖方 多线程

简介

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

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

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

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


同步工作流

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

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

image-20220930161337955

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

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

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

同步工作流非常常见。

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


异步工作流

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

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

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

image-20220930162957569

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

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

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

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

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

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


并行工作流

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

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

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

image-20220930161714717

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

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

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

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


总结

  • 同步:一次一个任务,下一个任务在上一个任务完成时启动。
  • 异步:在重叠的时间段内同时执行多个任务,由小部分执行。
  • 并行:多个或一个任务拆分为多个部分,由不同的执行者并行连续执行。

标签:异步,一个,并行,客户,卖家,卖方,多线程
From: https://www.cnblogs.com/KeFeng/p/16745363.html

相关文章

  • java 多线程
    线程的状态:New、Runnable、Blocked、Waiting、Timedwaiting、Terminated  newThread()——>New、start()——>Runnable、等待资源——>Blocked、wait()——>waiting......
  • 多线程同步与互斥
    1.互斥#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<pthread.h>#include<errno.h>pthread_mutex_tmutex=PTHREAD_MUTEX_INITIALIZER;intlock_v......
  • 多线程
    packagecom.bkc.bpmp.modules.external.service;importjava.util.concurrent.*;importjava.util.Date;importjava.util.List;importjava.util.ArrayList;/***Java线程......
  • python的多线程
    一、线程的概念线程是CPU分配资源的基本单位。当一程序开始运行,这个程序就变成了一个进程,而一个进程相当于一个或者多个线程。当没有多线程编程时,一个进程相当于一个主线程......
  • Day13 多线程的总结
    Day13多线程学习消费者生产者问题关键仓库中只能存在一件商品,生产者将生产出来的产品放在仓库,消费者将仓库中的产品取走消费所以synchronized只能解决线程同步的问题......
  • 多线程爬取wallhaven
    前言最近整理自己的项目时,发现之前自己写的爬取wallhaven网站顿时有来的兴趣决定再写一遍来回顾自己以前学的知识网站地址:"https://wallhaven.cc/"1.url参数结构从ur......
  • Java多线程内存读写 —— 内存屏障的理解
    在现代计算机中,CPU往往都是多核的,而由于每个CPUCore中都有自己的高速缓存Cache,因此就会造成内存数据读写的不一致性,表现为 ​​指令乱序​​​ 与 ​​不可见性​​​ ......
  • 多线程分时系统线程安全问题-synchronize
    问题多线程分时系统是存在线程安全问题的,如下例子:两个线程分别对同一个变量(初始值=0)做循环自增和自减操作各50000次,观察结果,并不等于初始值。publicclass分时系统线......
  • 多线程详解
    线程简介任务、进程、线程、多线程Process进程Thread线程线程就是独立的执行路径在程序运行时,即使没有自己创建线程,后台也会有多个线程,如:主线程,gc线程;main()称之为......
  • 多线程环境下安全的集合
    多线程环境下安全的集合List/***并发修改异常多个线程同时操作一个不安全的集合*<p>*CopyOnWriteArrayList写时复制技术*add方法会先复制一个新数组对新......