网络编程-同步和异步的概念

来源:互联网 发布:java趣味编程100例下载 编辑:程序博客网 时间:2024/05/17 04:38

序言

同步和异步的主要区别。


1. 同步的概念


  • 同步就是一直等到消息或返回值后才执行其他的事情。即在等待消息的时候不做其他事情

    • 比如两人约定见面,在等到对方的时候不做其他事情一直等
  • 同步可以理解为单线程。线程请求一个方法后就等待这个方法给它回复,否则就不往下执行

  • 同步就是调用一个函数,直到函数执行完了才返回调用函数

  • 同步就是实时处理。比如服务器一接收客户端请求,马上响应,这样客户端在最短的时间内得到结果。但是如果多个客户端,或者一个客户端发出的请求很频繁,服务器无法同步处理,就会造成拥塞。

    • 比如打电话,打电话我一定要在旁边听着,保证双方都在线


2. 异步的概念


  • 异步就是等待消息或返回值的时候我还会做其他事情

    • 比如两人约定见面,在等待对方的时候你还可以看手机、看书、打电话,而不是什么事也不做的一直等
  • 异步可以理解为多线程。在请求一个方法后,就不管了,继续执行其他的方法

  • 异步就是调用一个函数,函数初始化完后马上返回去做其他事情

  • 异步是分时处理。服务器接收到客户端请求后不是立即处理,而是等到服务器比较空闲的时候再处理,可以避免拥塞

    • 比如发短信,双方不用时刻保持在手机旁,也不用时刻留意手机有没有来短信,我可以看着视频,来了短信我就处理短信,也可以不处理
  • 异步的分类
    严格来说,异步有两种

    • [1] 一种是等,但是等的过程和同步不一样,等的时候还可以做别的工作,但是程序的主线还是等待

      • 请求的后期工作是在发出请求的线程上执行
    • [2] 另一种是回调方式,这种异步是完全不等待,程序主线发出请求后就去做别的事情了,完全不理会请求执行的如何,所以异步必然涉及两个以上线程

      • 请求的后期工作可以在任何线程(通常是执行请求的线程)上完成


3. 同步/异步区别举例

比如一个文章系统,文章通常是字数非常多的,如果数据量大打开的非常慢,这个时候同步异步的处理方式是不同的
  • 同步

    • 一直等到要显示的数据全部取出来

    • 标题、作者、创建时间、关键字、点击次数、正文

    • 全部取出

    • 显示

实时处理,函数执行完了才返回调用函数

  • 异步

    • 首先显示能够快速去除的部分

    • 标题、作者、创建时间、关键字、点击次数

    • 显示

    • 然后另外一个线程等待取出文章的正文

    • 显示

    分时处理,函数初始化完就去做其他事情了,做一件事情的同时不影响做其他事情


参考文章:

http://avaj.iteye.com/blog/151724
http://blog.csdn.net/tennysonsky/article/details/45111623

2017.10.27

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝拉绿色稀水怎么办 3个月宝宝肠胃炎怎么办 两个月婴儿拉水怎么办 3个月宝宝拉绿水怎么办 宝宝拉绿色的水怎么办 宝宝大便绿又水怎么办 8个月婴儿便秘怎么办 2个月婴儿便秘怎么办 四个月宝宝拉稀带有泡沫怎么办 六个月宝宝拉肚子怎么办拉水 婴儿拉的是沫怎么办 婴儿拉泡沫屎是怎么办 宝宝吃奶粉上火大便干燥怎么办 没满月的宝宝拉肚子怎么办 婴儿吃奶粉上火不大便怎么办 四个月宝宝拉沫怎么办 4个月小孩拉肚子怎么办 3个月的宝宝拉稀怎么办 宝宝没喝过奶粉怎么办 宝宝喝冰酸奶咳嗽了怎么办 7个月不爱喝奶怎么办 宝宝不认妈妈该怎么办 九个月宝宝不喝牛奶怎么办 吃羊肉和西瓜后怎么办 娃儿感冒了很咳怎么办 5岁娃儿经常感冒发烧怎么办 娃儿冷得发抖感冒怎么办 吃羊肉和茶后怎么办 宝宝胆汁酸高22怎么办 5个月发烧38度怎么办 28个月宝宝不愿把尿怎么办 16个月宝宝咳嗽怎么办 宝宝晚上不用纸尿裤要尿床怎么办 宝宝头型睡偏了怎么办 初生婴儿鼻子被奶块堵住怎么办 月经排的不顺畅怎么办 四个月的小孩拉肚子怎么办 月经期做了水光怎么办 4个多月的宝宝拉肚子怎么办 2个月婴儿积食怎么办 3个月婴儿积食怎么办