`
javaEEdevelop
  • 浏览: 876181 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

阻塞与非阻塞(转)

 
阅读更多
以套接字为例,在阻塞模式下,利用TCP协议发送一个报文时,如果低层协议没有可用空间来存放用户数据,则应用进程将阻塞等待直到协议有可用的空间。而在非阻塞模式下,调用将直接返回而不需等待。在应用进程调用接收函数接收报文时,如果是在阻塞模式下,若没有到达的数据,则调用将一直阻塞直到有数据到达或出错;而在非阻塞模式下,将直接返回而不需等待。  
    对于UDP协议而言,由于UDP没有发送缓存,因此所有UDP协议即使在阻塞模式下也不会发生阻塞。 
    对于面向连接的协议,在连接建立阶段,阻塞与非阻塞也表现不一。在阻塞模式下,如果没有连接请求到达,则等待连接调用将阻塞直到有连接请求到达;但在非阻塞模式下,如果没有连接请求到达,等待连接调用将直接返回。
原址(http://zhidao.baidu.com/question/128428965.html)
分享到:
评论

相关推荐

    C++ socket 阻塞与非阻塞

    一、阻塞与非阻塞模式 1. **阻塞模式**:在阻塞模式下,当一个Socket调用(如recv或send)执行时,如果数据未准备好,函数将挂起,直到数据可用才会返回。这种模式下,程序的执行流程会被暂停,直到接收或发送操作...

    Verilog里阻塞与非阻塞的区别

    Verilog 中的阻塞与非阻塞赋值 Verilog 中的阻塞和非阻塞赋值是两个不同的概念,它们在编程时的使用会产生不同的结果。在本文中,我们将通过两个程序的比较来了解阻塞和非阻塞赋值的区别,并引出相关的知识点。 ...

    socket阻塞与非阻塞

    socket阻塞与非阻塞

    Socket C++ TCP阻塞\非阻塞 服务器 客户端 开发

    ### Socket C++ TCP阻塞与非阻塞服务器客户端开发 #### 概述 本文档将详细介绍如何使用C++ Winsock库来开发TCP非阻塞服务器。通过本篇内容的学习,您将了解到设置socket函数为非阻塞模式的方法,并且能够深入了解...

    Linux UDP socket 设置为的非阻塞模式与阻塞模式区别

    ### Linux UDP Socket 非阻塞模式与阻塞模式的区别详解 #### 一、引言 在进行网络编程时,我们经常会遇到阻塞模式与非阻塞模式的选择问题。这两种模式直接影响程序的运行效率和资源利用率。本文将详细介绍在Linux...

    Linux设备驱动编程之阻塞与非阻塞

    ### Linux设备驱动编程之阻塞与非阻塞 在Linux设备驱动开发中,阻塞与非阻塞操作是两个非常重要的概念。这两种模式主要应用于I/O操作中,尤其是在处理文件读写时。本文将深入探讨这两种操作模式的区别,并通过一个...

    阻塞通信和非阻塞通信的区别

    阻塞通信和非阻塞通信的区别 阻塞通信和非阻塞通信是两种不同的通信模式,主要应用于Socket通信中。在Java中,通过使用java.nio包中的类可以实现非阻塞通信。 阻塞通信是指在发送或接收数据时,当前线程将被阻塞,...

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

    同步、异步、阻塞与非阻塞 在计算机科学中,同步、异步、阻塞与非阻塞是四个紧密相关的概念,它们都是关于任务或进程之间的交互和通信方式的描述。下面将对这四个概念进行详细的介绍和比较。 同步(Synchronous) ...

    非阻塞recvfrom的设置

    非阻塞recvfrom的设置 在网络编程中,recvfrom函数是一个常用的接收数据的函数,但是默认情况下,它是一个阻塞的函数,意味着它会一直等待数据的到来。如果我们想要实现非阻塞的recvfrom函数,需要使用ioctlsocket...

    C++串口通信类(阻塞和非阻塞都支持)

    通过以上分析,我们可以看出,C++串口通信类的设计需要考虑阻塞与非阻塞模式的支持,以及相应的设备设置、错误处理和多线程/异步编程技术。实现这样的通信类,不仅能够提供灵活的串口操作,还能满足不同应用场景的...

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

    **阻塞与非阻塞** 阻塞(Blocking)是指在进行某项操作时,如果所需的资源不可用,那么调用者会被挂起,无法执行其他任务,直到资源可用。比如,当一个线程尝试读取一个尚未准备好的文件时,它会被阻塞,直到文件...

    socket阻塞与非阻塞的区别

    ### socket阻塞与非阻塞的区别 #### 一、引言 在计算机网络通信中,socket作为最基本的网络通信接口之一,被广泛应用于客户端与服务器之间的数据传输。在使用socket进行编程时,会遇到两种基本的操作模式:阻塞模式...

    深入理解Verilog阻塞非阻塞

    ### 深入理解Verilog中的阻塞与非阻塞赋值 在数字逻辑设计领域,Verilog HDL(硬件描述语言)作为一种重要的工具被广泛应用于集成电路的设计与验证过程中。Verilog的一个显著特点是其能够支持并行语句的执行,这...

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

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

    阻塞赋值与非阻塞赋值详解.pdf

    ### 阻塞赋值与非阻塞赋值详解 #### 一、引言 在数字电路设计领域,特别是使用硬件描述语言(如Verilog HDL)进行设计时,理解和掌握阻塞赋值与非阻塞赋值的概念至关重要。这两种赋值方式不仅直接影响到电路的行为...

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

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

    STM32H7 LWIP Rev非阻塞方式

    文件"FreertosLwipSoketTcpNew"可能包含与STM32H7使用LWIP实现非阻塞TCP套接字相关的示例代码或配置。具体而言,这个文件可能涉及到如何在FreeRTOS环境下设置和管理任务,以及如何结合LWIP的API实现非阻塞TCP连接、...

    从RTL级真实理解阻塞与非阻塞_原创

    总结来说,掌握阻塞与非阻塞赋值是每一位数字电路设计工程师的基础技能。理解它们的工作原理以及在不同场景下的适用性,能够帮助我们在编写硬件描述语言代码时避免错误,优化设计性能,并确保最终实现的电路功能正确...

    linux gcc tty 串口非阻塞读取与发送

    tty 串口非阻塞读取与发送 实例 好用的测试串口实例

Global site tag (gtag.js) - Google Analytics