同步和异步vs串行和并行

同步

所有的操作都做完,才返回给用户。这样用户在线等待的时间过长,用户体验不好,也就是会有一种卡死了
的感觉(类似,你在一个购物页面点击了一个商品下单预购,界面就不动了,但是程序还在运行中,卡死了
的感觉)。这种情况下,用户不能去关闭界面,如果关闭了,程序就停止执行了,即添加购物车失败。

异步

将用户请求放入消息队列,并反馈给用户,系统添加购物车程序已经启动,你可以关闭浏览器或者关闭应
用程序了。后续程序会慢慢地去写入数据库中去。这就是异步和同步的差异。但是用户没有卡死的感觉,
一般会有系统提示词,告诉你系统已经响应了。你可以关闭界面或者去做其他的事情了。

小结

1.同步,是所有的操作都做完,才返回给用户结果。即写完数据库之后,再响应用户,用户体验较差。
2.异步,不用等所有操作都完成,就响应用户请求。即先响应用户请求,然后去排队慢慢写入数据库,用户体验较好。

异步操作的例子

1.为了避免短时间大量的数据库操作,一般会使用缓存机制,也就是消息队列。先将数据放入消息队列,
然后再慢慢写入数据库。
2.引入消息队列机制后,虽然可以保证用户请求的快速响应,但是并没有使得数据迁移到数据库的时间
变短(比如100万条数据写入mysql需要1个钟,用了redis之后,还是需要1个钟,只是保证用户的请求
是得到快速响应的。用户输入完http url请求之后,就可以把应用程序关了,做其他的事情去。如果
不使用Redis,浏览器是不能关闭的。)

同步的价值和应用场景

1.其实在JAVA中主要有两种交互方式,一种是同步一种是异步。
2.同步交互:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有一个等待的过程;
3.异步交互:指发送一个请求,不需要等待返回,随时可以再次发送下一个请求,即不需要等待。
4.区别:一个需要等地啊一个不需要等待,一般情况下,我们在项目中都是优先选择不需要等待
的异步交互方式。
5.同步交互的应用场景:一般的银行的转账系统,对数据的保存操作等等,都会使用同步交互的
操作,其余情况都优先使用异步交互。(在这里主要是为了保证数据的一致性,不展开细说)

串行和并行

首先,串行和并行跟异步和同步个人任务半毛钱关系没有。异步和同步所需时间一样,而并行比串行快很多。
就好比是水龙头,你一条同样大的水管出水,能有人家三条同样大的水管出水多嘛~~~

总结

同步和异步各有好坏和用处。文中如有错误请指正,谢谢
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值