关于同步异步的一点想法

网上看的同步异步个人感觉都没讲到点子上。
一般的说法都是总结下就是
异步就像发短信一样
同步就行打电话一样
(个人感觉这个说法不对)

我觉得要理解这个东西 先要知道为什么需要同步/异步:
因为共享资源在并发执行的时候会出现脏数据,所以才同步解决
同步可以是线程之间的同步,可以是进程之间的同步
因为他们需要解决的是共享资源的问题。

那为什么需要异步?为了更高效的利用计算机 所以才异步
而异步,即只能是线程之间的异步。(应该没错吧),如果为了异步开进程那个太蠢了吧,所以才会有异步是目的,多线程是具体方法。

就这点我觉得异步和同步就不是相互关联的东西。可能是翻译的问题,本人英文不太好,具体也不知道。

之所以连个东西能够联系起来大概就是因为,名字叫的太像兄弟两了。

所以上面说的那个,打电话和短信的说法 应该是不对的吧。
你不能因为打电话需要别人接听,你才能完成这个打电话的过程,而发短信不不需要对方点接受就能发短信,就说打电话是同步的,发短信是异步的吧。
只能说,一个手机不能同时接听2个人的电话,对于这个电话资源需要去同步的。
正打电话的时候你能够收到短信,而收短信的这个操作。相对于打电话来说就是异步的。

总结一下:
异步是异步操作,所以异步需要一个主体,在主体程序之上我们开一个线程做另外的事情,让计算机可以更高效的执行,比如web页面ajax操作,你不需要再次重新申请整个页面的资源。就能得到自己要的数据。

同步是同步资源,所谓同步操作,也是保证资源得到同步,不出现我们对0操作时,A+1而B-1 结果不是0的情况。

举个例子:
早上我有30分钟的空闲,我烧水要10分钟,刷牙要5分钟,洗脸要5分钟,吃早饭10分钟。

异步:
我先开启烧水,过程中我刷牙,洗脸,最后吃早饭,还有能结余10分钟。那我岂不是能多睡会
在这个过程中,刷牙。洗脸相对于烧水就是个异步的操作。
但实际上完全可以
先刷牙,在洗脸,然后烧水,吃早饭。只不过少了十分钟空闲

同步:
意味着我不能再刷牙的时候吃早饭,(当然你非要说你能一边刷牙一边吃早饭,也不是不行)
因为他们都要用到嘴巴,而我又不能让自己多长一张嘴,所以我需要同步嘴巴这个资源。

个人感觉:异步应该是一种编程思想,为了更高效的执行计算机操作,能异步的操作,完全都可以不用去异步执行,最多浪费计算机资源。

而同步则不是,需要同步意味着,资源必须保证不出错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值