同步异步比较

同步:任务执行完成之后返回; 
异步:任务执行还没有完成就返回; 

同步:如果任务处理慢容易出现阻塞; 
异步:容易处理不当出现跨线程错误;
同步就是你知道啥时候有结果。 

异步就是你不知道什么时候才会有结果。
同步 是客户逼在你后面看你完成工作进度。 
异步 是这个月的工资,下个月10日发,可以可能20日后发
同步就是,你来了,她也来了,然后就有然后了; 
异步就是,你来了,她走了,然后就没有然后了…… 
同步 工资不发,项目不做 
异步 说好了要发,不知何年何月。。。 

个人理解


两个windows API: 
SendMessage(...) 同步传输,向目标发送一个消息,并要求对方作出回应,得到回应后才算完成本次任务。 

PostMessage(...) 异步传输,向目标发送一个消息,但不要求对方作出回应。 
---------------------------------------------------------------------------------------------------- 
任务中存在协同工作的双方,同步指双方的状态互为条件,异步则不考虑对方的状态。
最简单的解释就是: 
同步就是消息发送出去之后要等结果出来才能做别的事; 
异步就是消息发送出去之后不需要等结果出来只要得到一个简单的接收响应就可以做别的事情
同步 工资不发,项目不做 
异步 说好了要发,不知何年何月。。。 

个人理解 

同步 项目不做,工资不发。 
异步 项目做完,工资不知道啥时候发。
同步:打电话 
异步:发短信
同步就是你知道啥时候有结果。 

异步就是你不知道什么时候才会有结果。 
我觉得这个解释可以~
同步:打电话 
异步:发短信 
也很贴切的形容了。
几年前,和饼子堂里面一个神仙聊天, 
至少帮我区分了同步,异步,阻塞,非阻塞之间的差别。受益匪浅。
同步:打电话 
异步:发短信 
++++
几年前,和饼子堂里面一个神仙聊天, 
至少帮我区分了同步,异步,阻塞,非阻塞之间的差别。受益匪浅。 
求分享阻塞,非阻塞之间的差别?
我举一个例子吧,我觉得这个例子更好。 

Windows API,MoveWindow,函数调用后,立竿见影,窗口一定移动到你指定的位置。 
MoveWindow后,你GetWindowPos,也一定是你Move的结果。 

Linux,X窗口系统中, XMoveResizeWindow去设置窗口位置,你调用返回后。 
再Get它的位置,结果和Windows的同步效果不一样。 

你窗口的位置会以X事件的方式,异步返给你。 

学习。
比如PlaySound函数吧 
异步播放就是 播放成功就 立即返回 
同步播放 则是 这个wav文件播放完成后 函数才返回
对计算机组成 和操作系统完全白痴的菜鸟感谢楼主 顺便接分
同步 我可以预知的,我也知道怎么做 

异步 我也不知道什么会什么时候返回,只是调用
哇哦,ls的几位总结的攒一个! 
这么快就沉下去了。。。
以前老师给我们具例子用的: 
同步:每天上公交车。。大家排队顺序上。。 
异步:大家同时上卡车。。没有顺序。
同步:专心拉屎 
异步:拉屎看报子
没有上下文,没有语境,这哪有办法回答。
严格的说,异步还是有两种。  
一种是等,但是等的过程和同步不一样,等的时候可以做别的工作,但是程序的主线还是等待  
WaitforSingleObject(hEvent,INFINTE,TRUE);  
另外一种是CALLBACK方式,这种异步是完全不等待,程序主线发出请求之后就干别的事情去了,完全不理会请求执行的如何。  
所有异步必然设计两个以上的线程(不然不存在异步的问题),第一种方式下,请求的后期工作是在发出请求的线程上执行,第二种方式下,后期工作可以在任何线程(通常是执行请求的线程上)完成
几年前,和饼子堂里面一个神仙聊天, 
至少帮我区分了同步,异步,阻塞,非阻塞之间的差别。受益匪浅。 

以函数调用为例,我的理解供参考: 
同步,函数调用后,处于等待状态,直到被调用的函数返回; 
异步,函数调用后立即返回,计算通常在另外一个线程中进行,计算完成后,通常通过callback函数得到计算结果。 

在大部分情况下,同步和阻塞语义相同,异步和非阻塞语义相同。 

以上是个人看法,如有不对,请各位高贤指正。 
阻塞是指多个任务串行。 
非阻塞是指将任务抛出去,继续串行下一个任务。 
异步是指任务之间进度不相关。 
同步是指多个任务之间存在进度协调。 

正在玩游戏,忽然肚子饿了。 
自己去煮饭炒菜,这就是阻塞。 
叫外卖送饭就是非阻塞。 
我玩我的游戏,送外卖的送外卖,这就是异步。 
等外卖送来了才能吃饭,这就是同步。
我举一个例子吧,我觉得这个例子更好。 

Windows API,MoveWindow,函数调用后,立竿见影,窗口一定移动到你指定的位置。 
MoveWindow后,你GetWindowPos,也一定是你Move的结果。 

Linux,X窗口系统中, XMoveResizeWindow去设置窗口位置,你调用返回后。 
再Get它的位置,结果和Windows的同步效果不一样。 

你窗口的…… 

同步不涉及回调函数,异步涉及回调函数(上面说的事件处理)
同步:打电话 
异步:发短信
同步阻塞 

异步不阻塞
两个windows API: 
SendMessage(...) 同步传输,向目标发送一个消息,并要求对方作出回应,得到回应后才算完成本次任务。 

PostMessage(...) 异步传输,向目标发送一个消息,但不要求对方作出回应。 
-------------------------------------------------------------------------------…… 

++ 
楼主面试去了?
最简单的解释就是: 
同步就是消息发送出去之后要等结果出来才能做别的事; 
异步就是消息发送出去之后不需要等结果出来只要得到一个简单的接收响应就可以做别的事情 
消息发送出去之后要等结果出来才能做别的事 这个才是异步 
同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式 
阻 塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网络调用上。 
而非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立 即返回
如果在本机上 的线程同步的意思是指  
两个线程 的共享内存(可以是代码也可以是数据) 在某一时刻只能被 1个线程访问 
如果是 只读锁的话 那就是 某一时刻只能被 1个线程写操作 其他线程可以进行读操作 这个WIN不支持 LINUX支持
线程同步  :有次序的执行 会阻塞
同步:打电话 
异步:发短信 
++ 
很形象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunxiaopengsun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值