当前位置:首页 > 技术文章 > 正文内容

产品经理需要了解的那些技术2:同步、异步、阻塞、同步服务

异步/同步

是处理模式的一种机制,一般用于函数、接口或者业务处理。


同步

处理业务上一级函数或者调用服务,必须等被调用的函数或者服务返回处理结果后,才可以继续处理。

举个例子:a去银行营业厅办事,等轮到a去窗口了,a说我要办某某业务,然后里面的营业员就开始办理,然后a要一直在窗口等着,直到里面营业员办完,才可以离开。

a在窗口等待,走不了。这种等待的模式,被称为阻塞。



异步

处理业务上一级函数或者调用服务,在对下一级的函数或者服务进行调用后,不等待被调用的函数或者服务返回处理结果,就继续出处理其他业务。等被调用者返回结果时,才继续处理对应业务。

举个例子:a去饭店吃饭,点了餐之后,可以随便溜达,等饭店做好之后,会进行叫号。a听到叫号后,去取餐,然后进餐。在等待的时候,a可以随便溜达随意干什么(我们不讨论a出饭店之后溜走的事)只是说这个状态。

a不专门等待,可以随便干点什么,这个不用专门等待的模式,也称为非阻塞。

叫号,属于回调函数(回调地址), 是a给b留下,b处理完后通知a的方式。


总结

同步/异步模式可以用在函数、服务、以及业务之间。


场景参考

产品经理在设计业务时,也可以参考同步、异步的这种机制。

耦合性比较强、业务处理比较短点的业务,一般使用同步模式,例如注册用户、新增用户、上传文件等。

耦合性没那么强,业务处理时间比较长的业务,则推荐使用异步模式,例如批量导入用户,文件在线转码等。


批量导入用户,例如我们需要导出1000个用户,等上传用户列表文件后,再进行用户创建。这时候如果使用同步模式,则用户需要一直在页面上等待,不但用户体验不好,而且也没有意义。这时候就可以使用异步模式,在上传完成后,就告诉用户已经完成操作,后面等系统进行创建即可,等创建之后再告知用户创建的结果即可。


同步服务

这里的同步其实是对服务的一个修辞,说明这个服务是用于数据同步的。类似的还可以有消息服务、订单服务等,跟上面的机制模式没有关系。

同步服务也可以是异步机制。

相关文章

7种超轻量级的Linux发行版,能够帮助你找到适合自己的操作系统

Linux是一种非常受欢迎的开源操作系统,而且有许多版本可以选择。有时候,你需要一种超轻量级的Linux发行版,它可以在资源有限的设备上运行,并且能够快速启动。本文将介绍7种超轻量级的Linux发行版...

vue:组件中之间的传值(vue组件之间传参)

一、父子组件之间的传值----props/$emit1、父组件向子组件传值--props2.子组件想父组件传值-this.$emit('select',item)二、父组件向下(深层)...

学习ES6- 入门Vue(大量源代码及笔记,带你起飞)

ES6学习网站: https://es6.ruanyifeng.com/箭头函数普通函数//普通函数 this 指向调用时所在的对象(可变) let fn = function fn(a, b) {...

react hooks自定义组件居然能这样做

前言  这里写一下如何封装可复用组件。首先技术栈 react hooks + props-type + jsx封装纯函数组件。类组件和typeScript在这不做讨论,大家别白跑一趟。接下来会说一下封...

用IDEA开发如何用Git快速拉取指定分支代码?

1,准备空的文件夹,git init2,关联远程仓库,git remote add origin gitlab地址3,拉取远程分支代码,git pull origin 远程分支名再用IDEA打开项目即...

迁移GIT仓库并带有历史提交记录(git 迁移仓库)

迁移git仓库开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。我们可以这样做:使用--mirror模式会把本地的分支都克隆。//...