同步和异步的概念

来源:互联网 发布:淘宝客源码7.0破解版 编辑:程序博客网 时间:2024/05/28 15:45

       昨天被问到了同步和异步的概念,当时没有多想,回答的时候就举了个例子,说是比方说以时间序列为基准,同步是一定要到了某个时间点才能执行,异步则在到达那个时间点之前就可以执行,所以二者存在时间上的延迟区别。。。不知道这样打比方妥不妥。

       不过后来再看了下网上的说法,如下所示,可以参考参考。感觉最后一点蛮对的,打电话就是同步,发短信是异步。

       对了,还有一个问题,就是面向对象的特点——封装、继承和多态

同步阻塞与异步阻塞:

同步是阻塞模式,异步是非阻塞模式。 

我的理解:同步是指两个线程的运行是相关的,其中一个线程要阻塞等待另外一个线程的运行。异步的意思是两个线程毫无相关,自己运行自己的。 

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 

异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 

举个不太恰当的例子,就像: 

SendMessage(...) 

TRACE0("just  like  send"); 

PostMessage(...) 

TRACE0("just  like  WSASend  using  overlapped"); 

 SendMessage是调用的时候不返回,等消息响应后才执行TRACE0,这就是同步. 

PostMessage是调用后马上返回,不用消息响应就执行TRACE0,这就是异步.

  其它解释:

 同步和异步的区别

 举个例子:普通B/S模式(同步)AJAX技术(异步)

同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事

异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕

同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。

异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。

所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。

举个例子 打电话时同步 发消息是异步

0 0
原创粉丝点击