`

I/O模型

阅读更多
Unix的5种I/O模型

1、阻塞I/O
2、非阻塞I/O
3、I/O复用(select、poll、linux 2.6种改进的epoll)
4、信号驱动IO(SIGIO)
5、异步I/O(POSIX的aio_系列函数)


同步I/O和异步IO

POSIX把这两个术语定义如下:
同步I/O操作导致请求进程阻塞,直至操作完成
异步I/O操作不导致请求阻塞。

根据上述定义,前四种I/O模型都是同步I/O,第5种才是异步I/O。

select不允许多于一个的线程在同一个描述符集上等待。这使得反应式模型不适用于高性能应用,因为它没有有效地利用硬件的并行性。
异步I/O通常能够提高更好的性能,windows的iocp通过内核线程调度,也能提供很好的并发性能,但不是真正的异步。
Java nio和多路复用

java 1.4 nio提供的select,这是一种多路复用I/O(multiplexed non-blocking I/O)模型,底层是使用select或者poll。I/O复用就是,阻塞在select或者poll系统调用的某一个之上,而不是阻塞在真正的I/O系 统调用之上。JDK 5.0 update 9和JDK 6.0在linux下支持使用epoll,可以提高并发idle connection的性能(http://blogs.sun.com/alanb/entry/epoll)。

以前看到有人猜测Windows下nio使用了IOCP,那应该是错的,毕竟IOCP不是多路复用I/O模型。从JavaOne 2006的幻灯片来看,aio才会使用IOCP来实现的。
分享到:
评论

相关推荐

    实验8-Windows Socket I/O模型

    1) 掌握Winsock I/O模型工作原理; 2) 熟悉I/O模型中使用的Winsock接口函数; 3) 掌握使用I/O模型进行网络程序设计的编程步骤; 实验要求: 在上述I/O模型中自选一个I/O模型,构建一个TCP服务器,该服务器能: 能显示...

    Socket I/O 模型的使用示例

    在本文中,我们将深入探讨异步Socket I/O模型的几种常见实现方式,包括选择(select)、异步选择(asynchronous select)、事件选择(poll)、重叠I/O(overlapped I/O)以及完成端口(completion ports)。...

    Windows Socket五种I/O模型——代码全攻略

    ### Windows Socket五种I/O模型详解 在计算机网络编程中,Windows Socket(Winsock)是实现网络通信的重要机制之一。为了高效地处理网络数据传输,Winsock提供了多种输入/输出(I/O)模型来满足不同场景下的需求。...

    select I/O模型 客户端

    `select` I/O模型是一种在多路复用I/O中广泛使用的机制,它允许一个进程监控多个文件描述符(如套接字)的状态,以确定何时进行读写操作。在本篇中,我们将深入探讨`select` I/O模型在客户端应用中的运用,以及与...

    采用C++语言实现的WSAEventSelect I/O模型

    在本文中,我们将深入探讨如何使用C++编程语言来实现基于WSAEventSelect的I/O模型。WSAEventSelect是Windows Socket API(Winsock)提供的一种异步I/O机制,它允许应用程序通过等待网络事件来处理多个套接字。这个...

    IOCPDemo-完成端口I/O模型编程

    完成端口(IOCP,Input/Output Completion Port)是Windows操作系统提供的一种高效的多线程并发I/O模型,尤其适用于网络编程中的高并发场景。在IOCPDemo中,我们将会探讨如何利用这种模型来构建高性能的UDP多播...

    1_WINSOCK的I/O模型_

    常见的I/O模型有阻塞I/O、非阻塞I/O、I/O多路复用、信号驱动I/O以及异步I/O。在WINSOCK中,这些模型都被支持,并且可以根据应用场景选择合适的模型。 1. **阻塞I/O**:这是最基本的模型,当一个套接字进行读写操作...

    windows下六种socket I/O模型示例

    在Windows操作系统中,进行网络编程时,我们常常会遇到多种Socket I/O模型。这些模型决定了如何处理输入/输出操作,从而影响程序的性能和效率。本文将深入探讨六种主要的Socket I/O模型,并通过实例解析它们的工作...

    套接字I/O模型中的select模型源码

    在各种I/O模型中,`select`模型是一种广泛使用的机制,尤其在处理多路复用I/O时。本文将深入探讨`select`模型的工作原理、优缺点以及如何在实际代码中应用。 `select`模型是一种I/O多路复用技术,允许程序同时监控...

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

    这里我们将详细探讨这两个概念以及I/O模型。 首先,同步与异步是客户端(C端)调用服务端(S端)时的行为模式。同步模式下,客户端在调用一个功能后,必须等待该功能执行完毕并返回结果,才能进行下一步操作。这就...

    Winodws Socket I/O模型 电子书及附套代码

    在Windows操作系统中,Socket I/O模型是网络编程的重要组成部分,它允许应用程序进行网络通信。本资源包含一本关于“Windows Socket I/O模型”的电子书以及配套的源代码,旨在帮助开发者深入理解并掌握在Windows环境...

    socket I/O模型源代码

    本文将深入探讨五种主要的套接字I/O模型:阻塞I/O、非阻塞I/O、I/O复用(select/poll/epoll)、信号驱动I/O以及异步I/O,同时通过提供的源代码文件,我们可以更直观地理解这些模型的工作原理。 1. **阻塞I/O模型**...

    介绍当前Windows支持的各种Socket I/O模型

    ### 当前Windows支持的各种Socket I/O模型 在现代操作系统中,网络编程是不可或缺的一部分,而Socket I/O模型则是实现高效网络通信的关键技术之一。本文将详细介绍当前Windows系统中支持的各种Socket I/O模型,包括...

    Winsock I/O模型的实现( Select + AsyncSelect + EventSelect + 重叠模型 + IOCP )

    利用Visual C++ 6.0实现的一套Winsock I/O模型,包括了所有的Winsock I/O模型:Select模型、AsyncSelect(异步选择模型)、EventSelect(事件选择模型)、Overlapped(重叠模型)、CompletionRoutine(完成例程)、...

    IO 模型网络程序实验

    本实验“IO 模型网络程序实验”旨在帮助你深入理解Winsock I/O模型的工作原理,以及如何在实际编程中应用这些模型。Winsock是Windows操作系统中的一个应用程序接口(API),它为开发者提供了实现TCP/IP协议栈的功能...

    select选择模型 windows套接字I/O模型

    在计算机网络编程中,I/O模型是至关重要的概念,它决定了如何处理数据的读写操作。Windows套接字API提供了一种称为“select”选择模型的机制,用于管理多个网络连接并有效地处理I/O事件。本文将深入探讨select选择...

    Winsock I/O模型的使用

    源码及实验报告 采用select模型设计一个支持UDP和TCP的多协议回射服务器。

Global site tag (gtag.js) - Google Analytics