同步异步的区别和同步树加载异步树加载区别

同步异步的区别 

  同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)。

  同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去。

  异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。

  很多下馆子吃饭的例子很经典。同步就是一群人去饭店吃饭,第一个排队的人点了个爆炒腰花,然后服务员通知后厨,厨师开始制作,然后10分钟之后做好了端上菜,才轮到第二个点菜,整个过程以此类推。异步就是一群人来了饭店,第一个排队的点了烤羊腰,服务员通知后厨,让第一个人去旁边先坐着,等做好了再给端上来,后面客人不用等第一个客人吃到菜才能点菜,紧接着就会让后面的的人点菜,整个过程以此类推。

同步优点是按照顺序整个过程一个一个来,不会乱掉,不会出现上面代码没有执行完就执行下面的代码,但是解析的速度没有异步的快。

  异步优点是程序接取一个任务,直接给后台,在接下一个任务,以此类推,谁的先读取完先执行谁的,后台谁先执行完先返回谁的,速度快不用等待,但是没有顺序 ,如果任务有关联的话有时候会报错;

  工作环境中举个例子,一个页面需要展示两部分数据结果,后台两个方法分别获取数据结果,如果两部分数据结果没有关联谁先显示都没有关系,那么就用异步执行,速度块,没有顺序要求,谁先获取到数据结果就会先在页面显示。如果一部分数据结果需要用另一部分的数据结果才能获取到,就得有一个执行的先后顺序,同步执行,第一部分的数据结果获取到后,再用所获得的数据结果去获取第二部分的数据结果,不然就可能会出现还没有获取到第一部分的数据结果就执行了第二部分,导致程序报错。

同步树加载异步树加载区别

  树的同步加载和异步加载。初始化的过程中,同步加载就已经将所有的节点信息加载到树节点中,我们可以随机获取任意节点。数据量比较小时,可以采用同步加载,并不会影响用户体验。但是数据量比较大的时候,就可以采用异步加载方式,异步加载只显示第一层的树节点,只有展示某个节点下一层节点的时候,才会根据当前的节点获取下一层节点信息。

应用场景的话分为单纯的展示树结构,或者用当前某单个节点作为范围等,数据量大的时候一般用异步加载。其他情况例如树前面有选择框,需要获取节点信息作为用途,就得通过同步加载一次性把树节点信息获取到,因为有时候想勾选获取某个父节点及其子节点的信息,异步加载只能获取到当前父节点的信息,不展开无法获取到子节点的信息。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注