美文网首页
同步和异步

同步和异步

作者: LittlePy | 来源:发表于2017-07-29 19:32 被阅读20次

1、同步

同步,就是协同步调, 按预定的先后次序进行运行。 就比如说,你做完了我再做,"同"字从字面上容易理解为一起动作,其实不是, "同"字应是指协同、 协助、 互相配合。如进程、 线程同步, 可理解为进程或线程A和B协调配合执行, A执行到一定程度时要依靠B的某个结果, 于是停下来, 示意B执行,B执行后将A所需的结果交付给A, A再继续操作。线程的同步机制用来控制多个线程对同一资源的访问,可以避免线程不安全的情况发生。

下面看一个运用互斥锁和同步机制来实现三个线程同步操作全局变量的例子:

可以看出运用了进程同步和互斥锁之后,并没有发生数据的混乱,保证了数据额正确性。在这里特别强调一下,task1、task2和task3的循环次数必须保持一致,否则会陷入死锁。

2、异步

在同步机制中,当一个线程正在操作共享资源,没有解锁的时候,其他线程默认是处于阻塞状态的,直到正在操作的线程解锁释放资源为止。异步则是一种相反的状态,即使不能获取锁,不会阻塞,会直接报错。为了方便理解同步和异步,举一个形象的例子来说明:

同步调用就是你喊你朋友吃饭 ,你朋友在忙,你就一直在那等, 等你朋友忙完了,你们一起去;

异步调用就是你喊你朋友吃饭 , 你朋友说知道了 , 待会忙完去找你 ,你就去做别的了。

进程池的apply_async函数就是一个异步的体现:

在上述代码中,callback函数是一个回调函数,它是将进程池中的子进程的返回值作为参数,在子进程执行结束之后由主进程回调执行的,也就是说,主进程可以通过回调函数对子进程的执行结果进行操作。

相关文章

  • UNIX 的5种IO模型介绍

    IO模型同步、异步、阻塞、非阻塞socket阻塞与非阻塞,同步与异步 同步和异步 同步/异步主要针对C端-同步就像...

  • 📕 史上最实用的JS笔记

    1. 同步与异步 同步和异步的区别是什么?分别举一个同步和异步的例子 同步会阻塞代码执行,而异步不会阻塞代码执行。...

  • Java AIO基础

    Java AIO(异步IO)特性是在Java7引入的。 [TOC] 同步异步、阻塞非阻塞的理解 同步和异步 同步和...

  • 阻塞、非阻塞、异步、同步

    异步和同步 异步和同步关心的是消息通信机制(synchronous communication / asynchr...

  • 多线程-相关概念

    一.同步(Synchronous)和异步(Asynchronous) 同步和异步通常用来形容一次方法调用,同步方法...

  • ES6 Promise 异步1

    - 异步 和 同步 promise对象: 用同步方式书写异步代码 promise 让异步写起来,像写同步一样流程...

  • JS 函数的执行时机

    1.同步和异步的区别 我们都知道JS里面有同步和异步的区别,怎么理解同步和异步呢。一家餐厅吧来了5个客人,同步的意...

  • I/O模型

    在学习I/O模型前,我们首先介绍同步和异步、阻塞和非阻塞的概念 1. 同步和异步 同步和异步是针对应用程序和内核的...

  • 2017年12月10日daliy

    ## 同步 异步 同步和异步关注的是消息通信机制(synchronous communication/ async...

  • GCD详解

    一 使用步骤 创建队列(串行队列或并发队列) 调用函数(同步或异步) 二 重要概念 1,同步和异步 同步或异步最大...

网友评论

      本文标题:同步和异步

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