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

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

zonemu2个月前 (07-14)技术文章18

异步/同步

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


同步

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

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

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



异步

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

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

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

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


总结

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


场景参考

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

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

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


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


同步服务

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

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

相关文章

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

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

2024前端面试真题之—VUE篇(前端面试题vuex)

添加图片注释,不超过 140 字(可选)1.vue的生命周期有哪些及每个生命周期做了什么? beforeCreate是new Vue()之后触发的第一个钩子,在当前阶段data、methods、com...

Vue3开发极简入门(14):组件间通信之props、ref&defineExpose

组件间的关系可以分为:父子关系。以前文的代码为例,最典型的就是App.vue与Car.vue这种,APP是父,Car是子。祖孙关系。如果Car再引入一个子组件,这个子组件与App就是祖孙关系。其他。比...

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

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

GitLab-合并请求(gitlab合并请求合并者还原图解)

描述合并请求可用于在您对项目进行的其他人员之间交换代码,并轻松与他们讨论更改。合并请求的步骤步骤1-在创建新的合并请求之前,GitLab中应该有一个创建的分支。您可以参考本章来创建分支-步骤2-登录到...

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

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