书上说,并发服务器的实现中,单经常轮询方式不断监测状态浪费了cpu时间,用select可以不浪费。但我看了select也是用在循环中,也是一直在轮询检测事件啊?不是一样吗?

解决方案 »

  1.   

    select is a blocked function, do you understand blocked? If no, please search the web.
      

  2.   

    select 比单经常轮询方高效,这是毋庸置疑的,但是这个也仅限这二者之间,select 的检测是一次用户模式到内核模式的转换
    而你单轮询方式每次都要切换一次模式,当然慢了而且... 就不说了
      

  3.   

    select 比单经常轮询方高效,这是毋庸置疑的,但是这个也仅限这二者之间,select 的检测是一次用户模式到内核模式的转换
    而你单轮询方式每次都要切换一次模式,当然慢了而且... 就不说了
    晕倒
      

  4.   

    我一个服务器同时接受到很多个用户的认证请求(得到用户名和密码),然后把用户名密码发给认证服务器。因为是远程认证,所以如果是串行的话,万一某个用户发出的认证连接出现问题,那么整个进程就死在那里了。另外由于是嵌入式系统,不能来一个用户就开一个线程。有没有高效简单的方法呀?**************************************************************************高效与简单在某些情况下是成反比的,也就是说,越高效的模型使用起来可能就越复杂。你可以使用
    重叠IO模型、完成端口模型,但是如果你的用户量不是很大你可以使用 select 模型另外:
    你打算用 TCP 还是 UDP啊