一个tcp server, 在用select进行多路复用时, 非阻塞 和 阻塞
的区别? select返回某些socket可读/写后, 用 非阻塞 或 阻塞
处理好象没什么区别, 但人们都说非阻塞 比 阻塞效率高???请大家指点.

解决方案 »

  1.   

    当有多个 Client 端 socket 与 Server 端 socket 连接及通信时, Server 端采用阻塞模式就显得不适合了,应该采用非阻塞模式 , 利用 socket 事件 的消息机制来接受多个 Client 端 socket 的连接请求并进行通信。 http://www.vckbase.com/document/viewdoc/?id=1375
      

  2.   

    "异常并没有说只能使用单线程。"非阻塞并不一定要使用单线程, 但非阻塞+单线程 是一个惯用法, 比如:
    Darwin Streaming Server 用得就是这个模型啊.