socket端口建立以后,如何一直监听端口的信息,见到的一般都是在一个线程内有
    以下方法体
   while(true){
           查看是否有信息;
           进行处理;
         }
    有一个小疑问,这样的话就相当于一直循环测试端口是否收到信息,那么cpu应该是全速运转执行的,占用cpu应该很高很高
。这个该怎么解决呢。

解决方案 »

  1.   

    你这写法应该是普通IO那个,所以一般会有accept()这方法的调用,然而这方法是一个阻塞方法,所以不会一直跑的
      

  2.   

    查看是否有信息;
    --
    这一步通常会使用阻塞方式或者nio中的selector方式,这都会一直阻塞直到有响应的。
      

  3.   

    再具体点比如这段代码
      while(true){
            if(inputstream有输出){
                 做一些处理
             }
        }
       这个算不算是有阻塞呢,在socket的inputsream的read方法中