• 同步与非同步,阻塞与非阻塞。


    我试图去搞明白它们的区别,但是发现网上很多的类别都非常的模糊。

    其实对于程序员来说,不需要那么多类比,下面我自己从程序的角度来理解这个事情。

    阻塞/非阻塞:只是描述函数调用是否立即返回,如果一定完成之后才返回,那么就是阻塞,如果调用立即返回(不是调用,而是通知了)就是非阻塞。

    同步/异步:描述的是两个对象之间的操作的关系。 同步是a调用b的一个功能后,必须等到b返回,a才继续。而异步不用等待。所以异步必须要非阻塞才能实现。
    但是同步可以使用阻塞或者非阻塞来实现。

    总体来说,说的是一个事情,不过就是描述对象不同。

    非阻塞是比较牛逼的。多路复用(select 方法)是一种杂交混合,标准的非阻塞都是用回调函数/中断/事件的方式来实现的。

    大部分设计模式里面的事件循环,回调函数,就是通过设计的方式来把阻塞变成非阻塞。

  • 相关阅读:
    297. Serialize and Deserialize Binary Tree
    331. Verify Preorder Serialization of a Binary Tree
    332. Reconstruct Itinerary
    329. Longest Increasing Path in a Matrix
    319. Bulb Switcher
    292. Nim Game
    299. Bulls and Cows
    Ice Cream Tower Gym
    B
    C
  • 原文地址:https://www.cnblogs.com/zhuchunxu/p/7787408.html
Copyright © 2020-2023  润新知