您的位置:首页 > 其它

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

2015-04-09 19:35 239 查看
阻塞模式和非阻塞模式的主要区别在于无请求来到时.

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

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

一般来说,使用阻塞模式的程序比较多,因为阻塞模式是由内核保障等待请求的,当他阻塞时不占用系统资源,而非阻塞模式需要我们人工轮询,占用资源较多。另外,阻塞模式可以使用select函数设置超时时间,具体可以参考相关书籍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐