`
thrillerzw
  • 浏览: 143793 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

同步和异步、阻塞和非阻塞

    博客分类:
  • java
 
阅读更多

同步和异步:

举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理业务了.

前者(排队等候)就是同步等待消息,而后者(等待别人通知)就是异步等待消息.在异步消息处理中,等待消息者(在这个例子中就是等待办理业务的人)往往注册一个回调机制,在所等待的事件被触发时由触发机制(在这里是柜台的人)通过某种机制(在这里是写在小纸条上的号码)找到等待该事件的人.

阻塞和非阻塞:

继续上面的那个例子,不论是排队还是使用号码等待通知,如果在这个等待的过程中,等待者除了等待消息之外不能做其它的事情,那么该机制就是阻塞的,表现在程序中,也就是该程序一直阻塞在该函数调用处不能继续往下执行.相反,有的人喜欢在银行办理这些业务的时候一边打打电话发发短信一边等待,这样的状态就是非阻塞的,因为他(等待者)没有阻塞在这个消息通知上,而是一边做自己的事情一边等待.但是需要注意了,第一种同步非阻塞形式实际上是效率低下的,想象一下你一边打着电话一边还需要抬头看到底队伍排到你了没有,如果把打电话和观察排队的位置看成是程序的两个操作的话,这个程序需要在这两种不同的行为之间来回的切换,效率可想而知是低下的;而后者,异步非阻塞形式却没有这样的问题,因为打电话是你(等待者)的事情,而通知你则是柜台(消息触发机制)的事情,程序没有在两种不同的操作中来回切换.

 

同步/异步与阻塞/非阻塞是两组不同的概念

分享到:
评论

相关推荐

    同步异步阻塞非阻塞

    同步异步阻塞非阻塞 IO 模型 在 Linux 环境下的网络 IO 中,有五种基本的 IO 模型:阻塞 IO、非阻塞 IO、IO 多路复用、信号驱动 IO 和异步 IO。其中,信号驱动 IO 不常用,因此主要介绍其余四种 IO 模型。 1. 阻塞...

    异步 同步 阻塞 非阻塞 的说明_异步同步阻塞非阻塞_

    在计算机编程和系统设计中,异步、同步、阻塞和非阻塞是四个非常重要的概念,它们关乎程序执行效率和资源管理。以下是对这些概念的详细解释。 **同步与异步** 同步(Synchronous)是指一个进程或线程在等待另一个...

    IO中同步、异步与阻塞、非阻塞的区别

    在软件开发领域,尤其是在涉及输入输出(IO)操作时,理解同步与异步、阻塞与非阻塞的概念是非常重要的。这些概念对于设计和实现高效的程序至关重要,尤其是在高并发和分布式系统中。 一、同步与异步 同步和异步是...

    同步、异步、阻塞、非阻塞的区别

    ### 同步、异步、阻塞、非阻塞的区别详解 #### 一、同步与异步 **同步**和**异步**是计算机编程中非常重要的概念,尤其是在多线程编程、网络通信以及操作系统中有着广泛的应用。这两个概念主要涉及的是**消息的...

    tcp socket同步 异步 阻塞 非阻塞 的解释.zip

    tcp socket同步 异步 阻塞 非阻塞 的解释.zip 基本概念:同步、异步、阻塞和非阻塞的区别 同步异步与阻塞非阻塞的区别 C++ 同步异步与阻塞非阻塞的区别

    java 同步、异步、阻塞和非阻塞分析.docx

    Java 同步、异步、阻塞和非阻塞分析 Java 中的同步、异步、阻塞和非阻塞是四个相关但不同的概念,它们都是在多线程编程中解决耗时操作的方法。在这里,我们将详细介绍这些概念之间的区别和联系。 同步...

    聊聊同步、异步、阻塞与非阻塞.docx

    非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。非阻塞的方式可以明显地提高 CPU 的利用率,但是也带来了另外一种后果,就是系统的线程切换增加。 同步与异步的比较 ...

    详解socket阻塞与非阻塞,同步与异步、I/O模型

    同步和异步只关注客户端的调用机制,而阻塞和非阻塞则关乎服务端的处理方式。同步与异步的区分并不依赖于阻塞或非阻塞,它们可以结合使用。例如,客户端可以发起异步请求,然后服务端处理请求时可能采用阻塞或非阻塞...

    同步、异步、阻塞和非阻塞的概念

    在计算机编程,特别是网络编程中,同步、异步、阻塞和非阻塞是四个关键的概念,它们描述了程序执行时处理任务的方式。 同步是一种调用模式,它要求调用者在等待结果返回之前不能继续执行其他任务。例如,当你调用`...

    C++网络编程例子说明异步非阻塞Socket的基本原理和工作机制

    用一个最简单的例子说明异步非阻塞Socket的基本原理和工作机制

    简述JAVA同步、异步、阻塞和非阻塞之间的区别

    在IO操作中,我们可以将同步、异步、阻塞和非阻塞四种模式组合起来,形成四种不同的IO模式:同步阻塞IO、异步阻塞IO、同步非阻塞IO和异步非阻塞IO。同步阻塞IO是指Sender在发送请求后,等待Receiver的响应,直到...

    java 中同步、异步、阻塞和非阻塞区别详解

    在Java编程中,同步、异步、阻塞和非阻塞是四个重要的概念,它们涉及到多线程和并发处理,特别是在网络编程中尤为关键。理解这些概念有助于优化程序性能和提高资源利用率。 1. **同步**: 同步是编程中一种控制机制...

    异步 同步 阻塞 非阻塞 的说明1

    - 非阻塞和异步并不是相互排斥的概念。非阻塞主要是指调用函数时不会立即阻塞当前线程,而是允许线程继续执行其他任务。而异步则关注任务的完成方式,是否需要等待任务完成。非阻塞操作可以是同步的(如主动查询)...

    同步与异步--阻塞与非阻塞型IO

    根据I/O操作的不同特性,可以将其分为四大类:同步阻塞IO、同步非阻塞IO、异步阻塞IO以及异步非阻塞IO。本文将详细介绍这四种不同的I/O模型,帮助读者理解它们之间的差异及应用场景。 #### 二、同步阻塞IO 同步阻塞...

    6-【高并发编程】再谈同步、异步、阻塞、非阻塞-1809261

    在计算机科学中,同步、异步、阻塞和非阻塞是并发编程中的核心概念,它们关乎程序如何处理数据输入/输出(I/O)操作。这些概念的理解对于编写高效的并发应用至关重要。 同步与异步主要关注的是数据处理的顺序和控制...

    彻底搞定阻塞非阻塞同步异步

    本文档,是我本人翻译的一篇介绍linux系统同步异步阻塞非阻塞的知识的,你在网上看到的百分之八十的知识,可能都以讹传讹,让你看的一知半解,因为网上很多该类博客,没有讲解清楚,举得例子:如老王烧水,小王银行...

    网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO

    这里我们将深入探讨同步IO、异步IO、阻塞IO和非阻塞IO的概念,理解它们的工作原理以及在实际应用中的差异。 1. 同步IO与异步IO: - **同步IO**:在同步模式下,应用程序执行I/O操作时会等待操作完成。这意味着程序...

    同步异步阻塞非阻塞I/O思维导图

    同步异步,阻塞非阻塞,I/O学习总结的思维导图,需要结合Richard Stevens的书来学习

    网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO.pdf

    同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non...

    2-Socket阻塞与非阻塞,同步与异步、IO模型-120412发布1

    同步和异步的区别在于数据访问时是否使进程阻塞,而阻塞和非阻塞的区别在于调用是否立即返回,无论数据是否准备好。 需要注意的是,同步和异步是客户端的视角,而阻塞和非阻塞是服务器的视角。同步和异步主要由...

Global site tag (gtag.js) - Google Analytics