爱悠闲 > 相关文章 >

基本概念:同步、异步、阻塞和非阻塞

基本概念同步异步阻塞阻塞
起来,实际上他是不同的。对于同步调用来说,很多时候当前线程还是激活的,只是从逻辑上当前函数没有返回而已。例如,我们在CSocket中调用Receive函数,如果缓冲区中没有数据,这个函数就会一直等待,直到有数据才返回。而此时,当前线程还会继续处理各种各样的消息。如果主窗口和调用函数在同一个线程中,除非你在特殊的界面操作函数中调用,其实主界面还是应该可以刷新。 socket接收数据的另外一个函数recv则是一个阻塞调用的例子。当socket工作在阻塞模式的时候,如果没有数据的情况下调用该函数,则当前线程就会被挂起,直到有数据为止。 阻塞 阻塞阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。  
socket 由浅入深系列------socket 阻塞阻塞(五)
socket 阻塞阻塞 author :songyanwu 1 概念理解 其实在我们在进行网络编程,在理解阻塞阻塞同时,还应该清楚同步异步同步阻塞 同步阻塞是不同的,可是有时候在理解有会很模糊; 同步: 事情一件件的做,做完一件返回一件,做不完不回复也不返回。 阻塞;  阻塞调用是指调用结果返回之前,当前线程会被挂起(线程进入可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。 说明:同步阻塞 在以后接触内核驱动
SOCKETS规范及应用-WINDOWS网络编程接口
和数据易失性  4.2 数据库函数  4.3 针对MICROSOFT WINDOWS的扩展函数  4.3.1 异步选择机制  4.3.2 异步支持例程  4.3.3 阻塞钩子函数方法  4.3.4 错误处理  4.3.5 通过中介DLL调用Windows Sockets DLL  4.3.6 Windows Sockets实现内部对消息的使用  4.3.7 私有的API接口  第五章 套接口库函数参考  5.1 WINDOWS SOCKET 1.1库函数参考  5.1.1 accept
Windows Socket 网络编程(三) —— Windows Sockets程序设计
(hostname); 当调用结束后,如果是成功返回(hostaddr不为NULL),则hostaddr指向的hostent结构中包含了请求的信息。      Windows Sockets在支持上述同步请求服务的同时,还增加了一类异步请求服务函数WSAAsyncGetXByY()。      函 数WSAAsyncGetXByY()是阻塞请求函数getXbyY()的异步版本。应用程序调用它时,由Windows Sockets DLL初始化这一操作并立即返回调用者,此函数返回一个异步句柄,用来标识
快速构建MMO服务器框架(三)boost.asio初步
怎样?以上代码并没有调用设置non blocking的选项。似乎“同步”“异步”“阻塞”“阻塞”的定义在这里区分得也比较明晰,比如 reactor+阻塞socket 就称为non-blocking synchronous。推测可能会出现的现象是blocking的socket影响了当前所在线程的其它socket的并发。 4、timer的列表是如何维护的?粗略看了一下实现,timer按照触发时间保存在二叉堆中,每次步进则执行触发时间<当前时间的timer。而timer本身也记录了在heap中的索引,可以实现快速删除,比较高效。 5、如果采用epoll实现的io_service运行在单线程下,那么有可能会出现处理网络io的时间太长,影响了游戏逻辑处理的情况。多线程的io_service有什么猫腻还要继续研究。 今天先写到这吧。
Java 开源 SOCKET 框架
的实现方式并基于SUN的java.nio.* 阻塞网络I/O类。  Raining Sockets 点击次数:241 Raining Sockets是一个阻塞sockets框架.开发者可以利用它来构建高性能的可以发送与接收10000 socket连接的应用程序.  Cindy 点击次数:453 基于java nio的Cindy提供一个简单,高效的异步I/O框架,支持tcp/udp/pipe并易于测试.
QT 多线程和 QSocket 网络编程实例解析
  本文介绍的是QT 多线程和 QSocket 网络编程实例解析,要实现网络编程,不说这么多,先来看内容。 (1) 带后缀-mt的库才是支持多线程的. 例如windows下面的qt-mt320.lib,其他平台libqt-mt (2)编译问题,要添加QT_THREAD_SUPPORT (30针对线程里面而言,blocking(阻塞的) = synchronous(同步的 ) non-blocking (阻塞的)  = asynchronous(异步的 ) 而Qt的signal/slot的事件
WSAStartup的WSA,WSA是什么单词的缩写?
WSAStarup,即WSA(Windows SocKet Asynchronous,Windows套接字异步)的启动命令   WSA == Windows SocKet Asynchronous == Windows套接字异步
socket阻塞阻塞同步异步、I/O模型
IO和阻塞IO的区别就在于:应用程序的调用是否立即返回! 对于举个简单c/s 模式: 同步:提交请求->等待服务器处理->处理完毕返回这个期间客户端浏览器不能干任何事 异步:请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕 同步异步都只针对于本机SOCKET而言的。 同步异步,阻塞阻塞,有些混用,其实它们完全不是一回事,而且它们修饰的对象也不相同。 阻塞阻塞是指当进程访问的数据如果尚未就绪,进程是否需要等待,简单说这相当于函数内部的实现区别,也就是未就绪时
socket阻塞阻塞同步异步、I/O模型
是否阻塞阻塞IO和阻塞IO的区别就在于:应用程序的调用是否立即返回! 对于举个简单c/s 模式: 同步:提交请求->等待服务器处理->处理完毕返回这个期间客户端浏览器不能干任何事 异步:请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕 同步异步都只针对于本机SOCKET而言的。 同步异步,阻塞阻塞,有些混用,其实它们完全不是一回事,而且它们修饰的对象也不相同。 阻塞阻塞是指当进程访问的数据如果尚未就绪,进程是否需要等待,简单说这相当于函数内部的实现区别
socket阻塞阻塞同步异步、I/O模型
,  就是调用我(函数),我(函数)立即返回,通过select通知调用者 同步IO和异步IO的区别就在于:数据拷贝的时候进程是否阻塞阻塞IO和阻塞IO的区别就在于:应用程序的调用是否立即返回! 对于举个简单c/s 模式: 同步:提交请求->等待服务器处理->处理完毕返回这个期间客户端浏览器不能干任何事 异步:请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕 同步异步都只针对于本机SOCKET而言的。 同步异步,阻塞阻塞,有些混用,其实它们完全不是一回事,而且
socket阻塞阻塞同步异步、I/O模型
阻塞,  就是调用我(函数),我(函数)立即返回,通过select通知调用者 同步IO和异步IO的区别就在于:数据拷贝的时候进程是否阻塞阻塞IO和阻塞IO的区别就在于:应用程序的调用是否立即返回! 对于举个简单c/s 模式: 同步:提交请求->等待服务器处理->处理完毕返回这个期间客户端浏览器不能干任何事 异步:请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕 同步异步都只针对于本机SOCKET而言的。 同步异步,阻塞阻塞,有些混用,其实它们完全不是一回事
TcpListener 阻塞阻塞模式
TCP同步异步阻塞模式,多线程+阻塞模式,阻塞模式简单介绍 分类: Server 其它文章 技术理论 2011-03-28 18:23  725人阅读  评论(1)  收藏  举报 首先我简单介绍一下同步TCP编程 与异步TCP编程。 在服务端我们通常用一个TcpListener来监听一个IP和端口。客户端来一个请求的连接,在服务端可以用同步的方式来接收,也可以用异步的方式去接收。比如: TcpListene server = new TcpListener
关于同步异步阻塞阻塞的解释
recv()函数读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。在实际Windows网络通信软件开发中,异步阻塞套接字是用的最多的。 (同步阻塞异步阻塞) 1、默认用作同步阻塞方式,那就是当你从不调用WSAIoctl()和ioctlsocket()来改变Socket IO模式,也从不调用WSAAsyncSelect()和WSAEventSelect()来选择需要处理的Socket事件。正是由于函数accept(),WSAAccept(),connect
关于同步异步阻塞阻塞的终极解析
这里面有篇文章非常牛逼,说的很清楚(注意这句话System I/O can be blocking, or non-blocking synchronous, or non-blocking asynchronous) 链接地址(看这一篇足够了) 包括下面这篇 链接地址 都说明了异步就是异步而已,异步下没有什么异步阻塞的概念 1. I/O就分三种,同步阻塞同步阻塞阻塞异步。可以这么理解,异步的话必然是非阻塞的了。 如第一篇文章所说blockingsynchronous
TCP同步异步阻塞模式,多线程+阻塞模式,阻塞模式简单介绍
连接, 如果不关就是异步的长连接。根据需要来确定。 总结特点:这种模式由于引入了多线程,提高了系统的效率,但是要考虑临界资源的互斥问题,如何管理线程生命周期。 3 阻塞模式 就不在用AcceptTcpClient()这种阻塞方式来接收请求。就是来一个请求马上接收。 通常用这两个方法组合使用 TcpListene server = new TcpListener(IPAddress.Parse("127.0.0.1"), port);  server.Start
SOCKET学习第二阶段(关于学习阻塞模式和阻塞模式)
  to handle the possibility of receiving a WSAEWOULDBLOCK error on every Winsock call.    Socket I/O models help applications manage communications on one or more sockets     at a time in an asynchronous fashion socket阻塞阻塞的区别 简单点说: 阻塞就是干不完不准回来
socket阻塞阻塞同步异步、I/O模型
socket阻塞阻塞同步异步、I/O模型 2013-04-10 10:00:54 标签: socket   模型   同步   异步   阻塞   阻塞 转载于:链接地址   1. 概念理解        在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/阻塞(Unblock)四种调用方式: 同步:       所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事
socket阻塞阻塞同步异步、I/O模型
socket阻塞阻塞同步异步 作者:huangguisu 链接地址 1. 概念理解      在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/阻塞(Unblock)四种调用方式: 同步:       所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。 例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 异步
socket阻塞阻塞同步异步、I/O模型
socket阻塞阻塞同步异步 作者:huangguisu 链接地址 1. 概念理解      在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/阻塞(Unblock)四种调用方式: 同步:       所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。 例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 异步