`

非阻塞IO和异步IO的区别

 
阅读更多
https://www.cnblogs.com/euphie/p/6376508.html
http://blog.chinaunix.net/uid-26000296-id-3754118.html
非阻塞
调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。
阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。
非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

异步
异步的概念和同步相对。
当一个异步过程调用发出后,调用者不会立刻得到结果。
实际处理这个调用的部件是在调用发出后,
通过状态、通知来通知调用者,或通过回调函数处理这个调用。

IO和NIO本质不同在实际项目使用场景及如何使用:
分享到:
评论

相关推荐

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

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

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

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

    同步异步阻塞非阻塞

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

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

    在IO多路复用机制如select和poll中,通过fd(文件描述符)来监控多个IO事件,它们在处理异步IO时显得尤为重要。无论是在传统的网络编程还是在现代的云服务架构中,这些IO处理模型都是不可或缺的一部分。

    linux设备驱动中的阻塞与非阻塞IO.pdf

    阻塞与非阻塞IO的选择取决于具体的应用场景和性能需求。阻塞IO虽然可能导致进程暂时停滞,但在资源密集型操作中能更高效地利用CPU资源;而非阻塞IO更适合于资源有限、响应时间敏感的场合,尽管它可能引入额外的CPU...

    JAVA IO同步,异步

    JAVA IO同步、异步详解 IO 操作是计算机系统中最基本的操作之一,它可以分为同步(Synchronous)和异步(Asynchronous)两种模式。...同时,我们还讨论了四种IO 模型:阻塞IO、非阻塞IO、IO 多路复用和异步IO。

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

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

    基于Python的gtornado异步IO设计源码,实现阻塞IO调用非阻塞化及协程风格使用

    本项目为基于Python的gtornado异步IO设计...该源码旨在实现tornado框架中阻塞IO调用的非阻塞化处理,并通过greenify技术将C语言编写的库IO操作异步化,支持直接使用协程风格的代码编写,以提升程序执行效率和响应能力。

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

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

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

    同步IO和异步IO的区别在于数据访问时进程是否被阻塞。同步IO在数据读写阶段必须阻塞,等待数据准备就绪;而异步IO在数据就绪之前并不阻塞,而是通过事件通知或回调函数来告知数据已经准备好了。 同步和异步只关注...

    9.阻塞IO1

    阻塞IO和非阻塞IO的区别在于当设备或数据未准备好时,如何处理应用程序的请求。在阻塞IO中,如果数据未就绪,应用程序会等待直到数据准备完毕。相反,非阻塞IO则立即返回,告知数据尚未准备好,让应用程序自行处理。...

    Icicle具有协同程序非阻塞IO和多线程的异步库

    Icicle是一款专为PHP设计的高级异步库,它引入了协同程序(C coroutines)和非阻塞I/O的概念,以实现高性能、低延迟的并发编程。这个库的独特之处在于它允许开发者使用类似于同步编程的方式编写异步代码,大大降低了...

    精讲响应式webclient-响应式非阻塞IO与基础用法.docx

    1. **非阻塞响应式IO**:WebClient采用非阻塞IO,这意味着它可以在有限的系统资源下处理更多并发请求,而不是像阻塞IO那样等待每个请求的完成。 2. **支持Java 8 Lambda表达式**:WebClient的API设计与Java 8的函数...

    非阻塞IO+Proactor+日志系统 自定义协议服务器.zip

    综上所述,"非阻塞IO+Proactor+日志系统 自定义协议服务器"项目涉及的关键技术点包括: 1. 非阻塞I/O:提高并发处理能力,减少线程间的上下文切换。 2. Proactor模式:通过事件驱动的异步I/O,简化多并发情况下的...

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

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

    Python高级编程和异步IO并发编程

    最后,异步IO(非阻塞IO)和协程是Python并发编程的高级主题。Python的asyncio库提供了一种事件驱动的编程模型,通过async/await关键字实现协程,可以实现高效的并发执行,特别适用于I/O密集型任务。理解事件循环、...

    阻塞与非阻塞IO

    ### 阻塞与非阻塞IO详解 #### 一、阻塞型I/O **1.1 阻塞I/O的概念和意义** 在计算机操作系统中,I/O(输入/输出)操作是非常常见的任务之一。阻塞I/O是其中一种重要的模型。当一个进程试图执行I/O操作而资源(如...

    linux下非阻塞IO程序源码.zip

    在"linux下非阻塞IO程序源码.zip"这个压缩包中,我们可以找到相关的源代码示例,以帮助理解非阻塞I/O的实现。 非阻塞I/O在Linux中的实现主要通过以下方式: 1. **fcntl()** 函数:可以将文件描述符设置为非阻塞...

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

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

    IO模型中的阻塞模型和非阻塞模型

    当调用一个非阻塞IO函数时,无论操作是否成功完成,函数都会立即返回,通常会返回一个特定值来表示操作正在进行中。这种方式使得程序能够更加灵活地处理IO操作,提高了系统资源的利用率。 在非阻塞模型中,可以使用...

Global site tag (gtag.js) - Google Analytics