美文网首页
同步编程 vs 异步编程

同步编程 vs 异步编程

作者: linheimx | 来源:发表于2017-06-18 18:28 被阅读651次

同步的编程模型

简单描述:
一个线程获得了一个任务,然后去执行这个任务,
当这个任务执行完毕后,才能执行接下来的另外一个任务。
注意:
这个线程不能将当前的任务放置在一边,转而去做另外一个任务。

单线程的情况:

线程依次执行任务

一个线程,相当于一个人,这个人做完一个任务,再去做下一个任务。

这个人有两个任务,第一个是吃水果,第二个是写文章。
那么这个人是先去吃一堆水果,然后再去写文章。

多线程的情况:

多个线程,每个线程依次处理它的任务

异步编程模型

它和同步的编程模型有很大的区别:
一个线程中执行一堆任务,
这个线程可以自由的保存,恢复任务的状态。
也就是,它有能力穿插的执行任务。

单线程的情况:

一个线程,穿插的执行任务

一个线程,相当于一个人,这个人交替的做任务。

这个人有两个任务,第一个是吃水果,第二个是写文章。
那么这个人是先去吃两个水果,然后再去写文章,过一会再去吃水果,然后再来写文章。

多线程的情况:
几个人互相协作,处理这一堆任务

多个线程,在每个线程中交替的执行任务

异步编程的好处

实用:
利用异步编程,不阻塞当前的ui线程,用户体验很好。
性能:
一个程序的性能是非常重要的,这个不言而喻。
当我们执行耗时任务(读写磁盘,网络请求)的时候,大约70%的时间都浪费在等待结果上面。
利用异步编程,在这浪费的70%的时间内,我们可以愉快的保存当前任务状态,去执行其他任务,等那个任务执行完成,有了结果,我们切换到那个任务的执行上。最大化的利用这个线程。

相关文章

  • 同步编程 vs 异步编程

    同步的编程模型 简单描述:一个线程获得了一个任务,然后去执行这个任务,当这个任务执行完毕后,才能执行接下来的另外一...

  • iOS 并发编程 - Operation And NSOpera

    基本概念术语串行 vs 并发(concurrency)同步 vs 异步队列 vs 线程 iOS的并发编程模型 Op...

  • 网络编程基本概念

    网络编程有一些基本概念需要理解掌握,比如同步、异步、阻塞非阻塞。 1. 同步vs异步 同步与异步主要是从消息通知机...

  • ES6学习--异步编程--Generator

    异步编程 : (异步编程的语法目的就是让异步编程更像同步编程) 回调函数利用回调函数实现异步编程本身没有问题, 问...

  • 为什么要使用异步 PHP

    同步编程与异步编程的区别 在讨论异步 PHP 的优点之前,让我们快速回顾一下同步编程模型和异步编程模型之间的区别。...

  • 读书笔记#Java异步编程实战-上

    Java异步编程实战 chap1 认识异步编程 异步编程概念与作用在使用同步编程方式时,由于每个线程同时只能发起一...

  • 异步编程的前世今生

    异步编程的前世今生 1、为什么需要异步编程 异步编程是相对同步编程来说的,开发项目时,开发者总是希望,程序的执行顺...

  • RxSwift学习

    编程思想 用同步的方式,编写处理异步事件的代码。是基于异步 Event(事件)序列的响应式编程。它可以简化异步编程...

  • 04-Node 异步编程

    Node 异步编程同步方法和异步方法异步 API 的执行顺序异步编程回调地狱问题Promise 改造回调地狱代码a...

  • JS中的异步编程

    JS中的同步编程和异步编程 同步编程:任务是按照顺序依次处理,当前这件事没有彻底做完,下一件事是执行不了的 异步编...

网友评论

      本文标题:同步编程 vs 异步编程

      本文链接:https://www.haomeiwen.com/subject/tsqwqxtx.html