`
windflower_07
  • 浏览: 41500 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【转】同步、异步、阻塞、非阻塞

阅读更多
转自:http://blog.hiwgy.com/2012/02/22/synchronous_asynchronous_block_unblock/

同步、异步、阻塞、非阻塞这4个词在计算机IO和网络模型中非常常见。今天我自己给别人解释,又把自己解释糊涂了。回忆了国外操作系统中一个投递邮件的例子。

理解时应该组合着理解,有以下四种情况:
现在你是一个邮递员。
同步阻塞:把邮件投递到hiwgy家的邮箱中,然后站在邮箱旁边等,等到hiwgy把邮件取走了,你才继续投递下一封邮件。
同步非阻塞:把邮件投递到hiwgy家的邮箱中,然后你就继续投递下一封邮件;但是,你不停得给hiwgy打电话,问他是否收到了邮件。
异步阻塞:把所有邮件投递到所有收件人的邮箱中,然后你回到了家里,你开始等收件人给你打电话。
异步非阻塞:把邮件投递到hiwgy家的邮箱中,然后你继续投递下一封邮件,hiwgy突然给你打了个电话,告诉你他收到邮件了,你知道了。

如果要单独理解“同步和异步”,或者单独理解“阻塞和非阻塞”
同步和异步:感觉这个不好解释。同步主要指你的线程要主动关注你的行为是否达到目标了;异步,会有别人通知你,你的行为达到目标了。
阻塞和非阻塞:指你自己的线程,是否需要wait。比如一个IO写函数调用,如果你需要等待写操作执行完毕,函数才返回,那么就是阻塞;如果写操作并未执行完毕,函数就返回,那么就是非阻塞。
分享到:
评论

相关推荐

    同步异步阻塞非阻塞

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

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

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

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

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

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

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

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

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

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

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

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

    异步的实现方式会有两种:异步阻塞、异步非阻塞;同理,同步也会有两种实现:同步阻塞、同步非阻塞。 阻塞与非阻塞的比较 阻塞和非阻塞是从程序(线程)等待消息通知时的状态角度来说的。阻塞是指调用结果返回之前...

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

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

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

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

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

    Socket编程中的阻塞与非阻塞、同步与异步是两个独立的概念,它们涉及的是不同层面的操作机制。这里我们将详细探讨这两个概念以及I/O模型。 首先,同步与异步是客户端(C端)调用服务端(S端)时的行为模式。同步...

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

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

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

    在IT领域,尤其是在多线程和并发编程中,同步、异步、阻塞和非阻塞是四个非常关键的概念。这些概念通常与操作系统、网络I/O、数据库操作以及Java等编程语言中的线程管理紧密相关。现在让我们逐一深入探讨它们的含义...

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

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

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

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

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

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

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

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

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

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

    Java异步调用转同步方法实例详解

    异步调用是一种非阻塞的调用方式,调用方在调用过程中,不直接等待返回结果,而是执行其他任务,结果返回形式通常为回调函数。SYNC调用是指调用方在调用过程中,持续等待返回结果。Java中将异步调用转换为同步调用有...

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

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

    异步非阻塞套接字Winsock开发网络通信程序开发入门

    首先,理解同步和异步、阻塞和非阻塞的概念至关重要。同步方式意味着发送方发送数据后会等待接收方的响应,而异步则允许发送方在没有等待响应的情况下连续发送数据。阻塞套接字在执行网络调用时会保持等待,直到操作...

Global site tag (gtag.js) - Google Analytics