使用Socket时的阻塞工作方式和非阻塞工作方式有什么区别

来源:互联网 发布:ssm框架项目源码下载 编辑:程序博客网 时间:2024/06/10 14:59

阻塞模式和非阻塞模式的主要区别在于无请求来到时.


阻塞模式会一直停在接收函数即accep函数,直到有请求到来(数据到来)才会继续向下进行处理。(换句话说没有数据到达时,程序会在这行代码上等待,不继续往下执行。有数据到达后,函数返回,程序才往下执行)


而非阻塞模式下,运行接收函数,接收函数会立即返回。如果有请求,则会接收请求,如果无请求,会返回一个负值,并继续向下运行。


一般来说,使用阻塞模式的程序比较多,因为阻塞模式是由内核保障等待请求的,当他阻塞时不占用系统资源,而非阻塞模式需要我们人工轮询,占用资源较多。另外,阻塞模式可以使用select函数设置超时时间,具体可以参考相关书籍。

 

0 0
原创粉丝点击