博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
同步和异步的区别
阅读量:5913 次
发布时间:2019-06-19

本文共 1017 字,大约阅读时间需要 3 分钟。

同步在一定程度上可以看做是单线程,这个线程请求一个方法后就待这个方法给他回复,否则他不往下执行。 

异步在一定程度上可以看做是多线程的,请求一个方法后,就不管了,继续执行其他的方法。 
比如一个文章系统里面,文章内容通常是字数非常多的,如果数据量大,打开会非常的慢,这个时候可以采取两种方法: 
1、同步:一直等待要显示的数据全部取出来 
标题、作者、来源、创建时间、关键字、点击次数、文章正文  
全部取出之后显示

碰上心急的用户,他会骂死你的。 

2、异步:首先显示能够快速取出的部分: 

标题、作者、来源、创建时间、关键字、点击数 
显示 
然后另外的一个线程等待取出文章的正文显示! 
异步就是:做一件事情的同事,不影响做其他的事情。 
所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。  
   
异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。  
   
并不是说谁好谁不好,只是同步的机制不适合在正式应用的项目当中(但自己测试还是可以的) 
同步,就是实时处理,比如服务器一接收客户端请求,马上响应,这样客户端可以在最短的时间内得到结果,但是如果多个客户端,或者一个客户端发出的请求很频繁,服务器无法同步处理,就会造成涌塞。  
异步,就是分时处理,服务器接收到客户端请求后并不是立即处理,而是等待服务器比较空闲的时候加以处理,可以避免涌塞。  
同步和异步之分: 
同步就是调用一个函数,直接函数执行完了才返回到调用函数 
异步就是被调用函数初始化完后马上返回。 
---------- 
同步就是(我死心眼)我等你(给我回答),异步就是(我很忙)我不等你(给我回答) 
严格的说,异步还是有两种 
一种是等,但是等的过程和同步不一样,等的时候可以做别的工作,但是程序的主线还是等待  WaitforSingleObject(hEvent,INFINTE,TRUE);  
另外一种是CALLBACK方式,这种异步是完全不等待,程序主线发出请求之后就干别的事情去了,完全不理会请求执行的如何。  
所有异步必然设计两个以上的线程(不然不存在异步的问题),第一种方式下,请求的后期工作是在发出请求的线程上执行,第二种方式下,后期工作可以在任何线程(通常是执行请求的线程上)完成。

转载地址:http://kwmpx.baihongyu.com/

你可能感兴趣的文章
The Shared folder with you
查看>>
挖掘数据金矿 领军协同创新 曙光荣膺“2016大数据创新应用领袖企业”称号
查看>>
oschina程序开发
查看>>
《从零开始学Swift》学习笔记(Day 40)——析构函数
查看>>
SVN Hooks的介绍及使用
查看>>
axios 拦截 , 页面跳转, token 验证(自己摸索了一天搞出来的)
查看>>
如何将经纬度利用Google Map API显示C# VS2005 Sample Code
查看>>
开发人员可以提高效率的chrome插件推荐
查看>>
性能测试分享:性能测试工具开发的案例分享(下)
查看>>
linux sar命令详解
查看>>
通过Gearman实现MySQL到Redis的数据复制
查看>>
eclipse 自动为getter和setter添加注释
查看>>
kafka 监控之Mx4jLoader
查看>>
XBImageFilters
查看>>
Hadoop之HDFS的常用命令
查看>>
分布式系统架构解决方案之Dubbo(三)--Dubbo管理端 和 Dubbo综合案例
查看>>
The function getUserId must be used with...解决办法
查看>>
Class yii\base\View
查看>>
我的友情链接
查看>>
我的友情链接
查看>>