阻塞与非阻塞
来源:互联网 发布:单片机有哪些类型 编辑:程序博客网 时间:2024/05/04 00:04
阻塞与非阻塞。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待状态, 直到有东西可读或者可写为止。而对于非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返回, 而不会等待。缺省情况下, socket处于阻塞状态。
同步异步与阻塞和非阻塞是两种不同的概念来着
同步异步指的是通信模式,而阻塞和非阻塞指的是在接收和发送时是否等待动作完成才返回
所以不能混淆这四个磁。
以下是我的一些理解,请大家多指教
首先是通信的同步,主要是指客户端在发送请求后,必须得在服务端有回应后才发送下一个请求。所以这个时候的所有请求将会在服务端得到同步
其次是通信的异步,指客户端在发送请求后,不必等待服务端的回应就可以发送下一个请求,这样对于所有的请求动作来说将会在服务端得到异步,这条请求的链路就象是一个请求队列,所有的动作在这里不会得到同步的。
阻塞和非阻塞只是应用在请求的读取和发送。
在实现过程中,如果服务端是异步的话,客户端也是异步的话,通信效率会很高,但如果服务端在请求的返回时也是返回给请求的链路时,客户端是可以同步的,这种情况下,服务端是兼容同步和异步的。相反,如果客户端是异步而服务端是同步的也不会有问题,只是处理效率低了些。
同步=阻塞式,异步=非阻塞式
同步和异步都只针对于本机SOCKET而言的
同步模式下,比如RECIEV和SEND,都要确保收到或发送完才返回,继续执行下面的代码
不然就阻塞在哪里,所以,同步模式下,一般要用到线程来处理。
异步模式就不同了,不管有没有收到或发送出去,他都马上返回,继续执行下面的代码,结果由消息通知。
- 阻塞与非阻塞
- 阻塞与非阻塞
- 阻塞与非阻塞
- 阻塞 与 非阻塞
- 阻塞与非阻塞
- 阻塞 与 非阻塞
- 阻塞与非阻塞
- 阻塞与非阻塞
- 阻塞与非阻塞
- 阻塞与非阻塞
- 阻塞与非阻塞 异步非阻塞
- 阻塞与非阻塞赋值
- WSAAsyncSelect阻塞与非阻塞
- 阻塞与非阻塞概念
- 阻塞与非阻塞概念
- socket阻塞与非阻塞
- nodejs 阻塞与非阻塞
- 阻塞与非阻塞解释
- asp.net面试题收集 你都会了吗
- C/C++的64位整型 不同编译器间的比较
- 太有才了
- 使用Getopt::Long来处理复杂的命令行选项
- 游戏软件开发
- 阻塞与非阻塞
- actionScript 日期格式化 播放音频/视频
- 那些相见恨晚的 JavaScript 技巧
- C++入门之我见
- diff命令
- 在Vista操作系统中通过manifest文件使VC应用程序获得管理员权限 收藏
- 关于XML中字节写入流字段时的说明
- null 与 equals判断顺序引起的头疼事
- 在MFC中获得应用程序主窗口的指针