`
echohfut
  • 浏览: 231628 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[转] 同步与异步 阻塞与非阻塞IO

 
阅读更多
摘自:http://leili.iteye.com/blog/1580466


1. 阻塞与非阻塞
区别是读写IO时是否设置了文件描述符的属性O_NONBLOCK。 如果设置了该属性,io操作立刻返回但不保证IO读写成功。

2. 同步与非同步
同步模式下调用者要么一直等阻塞IO返回结果;要么主动轮询非阻塞IO是否成功。也就是需要调用者去问操作系统

非同步模式下有两种方式:
其一是用Select函数,该情况下IO是非阻塞的,但Select是阻塞的,select用来确定指定的文件描述符是否有变化。用select的好处是可以为多个描述符提供通知,提高了并发性。

其二是用回调,当操作系统kernel执行完IO,返回read的响应,就会产生一个信号或执行一个基于线程的回调函数来完成这次 I/O 处理过程。函数,
分享到:
评论

相关推荐

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

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

    同步异步阻塞非阻塞

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

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

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

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

    理解同步/异步与阻塞/非阻塞的区别后,我们可以进一步探讨这两种机制的组合应用。 1. **同步阻塞**:最常见的组合之一,适用于简单且对实时性要求不高的应用场景。例如,使用阻塞式的方法读取文件或数据库查询。 2...

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

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

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

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

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

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

    JAVA IO同步,异步

    在本文中,我们讨论了基于系统底层通信技术Socket 的JAVA IO同步和异步操作,包括阻塞和非阻塞IO 操作。同步IO 是指应用程序在执行IO 操作时,需要等待IO 操作完成后才能继续执行其他操作,而异步IO 则是指应用程序...

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

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

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

    同步与异步决定了客户端等待服务器响应的方式,而阻塞与非阻塞则决定了服务器处理I/O操作的策略。选择正确的组合可以显著提高系统的并发性和响应能力,从而提升用户体验。在设计网络应用程序时,需要根据具体需求...

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

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

    同步与异步IO、阻塞与非阻塞IO

    同步非阻塞IO(如图3所示)则允许`read`操作立即返回,但可能需要多次尝试才能成功完成IO,这可能导致程序进行忙碌等待,降低效率。 此外,还有其他混合模型,如I/O复用(如select、poll、epoll)和信号驱动IO...

    4-【Linux网络编程】同步,异步,阻塞,非阻塞-1809261

    【Linux网络编程】同步、异步、阻塞与非阻塞的概念在计算机科学特别是网络编程领域至关重要。在Linux环境下,理解和运用这些概念对于优化应用程序性能和处理并发I/O至关重要。 同步(Synchronous)I/O指的是应用...

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

    在Java中,非阻塞IO(NIO)就是一种实现方式,它允许程序在等待数据到达时执行其他任务,而不是直接阻塞等待。非阻塞IO在处理大量并发连接时尤其有用,因为它可以显著提高系统资源的利用率。 结合同步和异步,阻塞...

    同步、异步IO

    在Java中,可以查看NIO相关的类,如java.nio.channels.Selector、java.nio.channels.SocketChannel等,研究它们如何实现非阻塞IO。在Node.js中,可以研究libuv库,它是Node.js实现异步IO的基石,提供了对多种平台的...

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

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

    科学知识:同步、异步、阻塞和非阻塞区别

    同步、异步、阻塞和非阻塞是计算机科学中关于程序执行模式的重要概念,尤其在多线程、网络编程和并发处理中扮演关键角色。理解这些概念有助于编写高效、响应迅速的应用程序。 同步(Synchronous)和异步...

    linux异步IO.pdf

    3. **异步阻塞I/O**:结合了非阻塞I/O和阻塞通知机制,如select/poll/epoll,用于检测I/O描述符的状态变化。虽然提供了多描述符通知的便利,但在高性能场景下效率不足。 4. **异步非阻塞I/O(AIO)**:真正实现了I/O...

    WinSock 异步IO模型

    1. **非阻塞**:程序在等待IO操作完成时不会被挂起,可以继续处理其他任务。 2. **高并发**:多个并发的IO请求可以在同一时刻处理,提高系统吞吐量。 3. **反应灵敏**:用户界面可以保持流畅,即使在网络活动繁忙时...

Global site tag (gtag.js) - Google Analytics