选择()使用非阻塞I / O和选择()使用阻塞I / O插槽

时间:2015-10-07 09:57:31

标签: sockets select nonblocking

我试图了解select()和非阻塞I / O概念。 但是如果使用select()阻塞I / O以及如果在select()中使用非阻塞,那么仍然没有会发生什么。

我看了,select()已经是块调用了。那它是如何运作的?

2 个答案:

答案 0 :(得分:0)

  

如果使用select()

阻止I / O会发生什么

您将获得IllegalBlockingModeException.

  

select()已经是阻止通话。那它是如何运作的?

它会一直阻塞,直到正在选择的事件发生,或者超时到期,如果有的话。

答案 1 :(得分:0)

select()poll()与阻塞或非阻塞套接字一起使用是完全正常的。对select()本身的呼叫将被阻止,直到提供给select()的(其中一个)套接字可供阅读。