public class Server implements Runnable
{
   private Thread          myThread;
   private boolean         server_exit;
   public Server(boolean daemonThraed )
   {
     myThread = new Thread( this );
      if ( daemonThraed )
      {
         myThread.setDaemon( true );
      }
      myThread.start();
   }
   public void run()
   {
      while ( !server_exit )
      {
           //处理连接
      }
   }
}
对于以上代码,一开始的时候Server一个实例在运行。那么第一个连接进来了,就由run中处理连接部分代码处理他。几乎同时,第二个连接进来了,是不是因为多进程的原因,系统又开辟了一新的线程处理?? 而不需要让第二个连接处理完毕??还是什么谁能说说?高分赠与。。

解决方案 »

  1.   

    interpb(曾曾胡) :
    你的意思是说,如果我的代码如下:
    public class Server //没有实现Runnable接口
    {
       private Thread          myThread;
       private boolean         server_exit;
       public Server(boolean daemonThraed )
       {
       }
       public void run()
       {
          while ( !server_exit )
          {
               //处理连接
          }
       }
    }
    这样的话,第一个连接进来了,第二个也进来的话,在第一个被处理完全之前,都不予理会,甚至抛弃??是这样吗?
      

  2.   

    楼主,你的代码只有一个线程啊(main线程除外),怎么存在“第一个连接进来了……几乎同时,第二个连接进来了”?
      

  3.   

    to Dan1980(不用IDE的大傻瓜):嗯,只有一个线程? 
    1、那么如果要实现同时多个连接进来,也能同时处理。怎么写(伪代码)?
    2、按照你所说。。岂不是上面跟单线程没区别。。代码如下:
     public class Server //没有实现Runnable接口
    {
       private Thread          myThread;
       private boolean         server_exit;
       public Server(boolean daemonThraed )
       {
       }
       public void run()
       {
          while ( !server_exit )
          {
               //处理连接
          }
       }
    }
      

  4.   

    interpb(曾曾胡):
    假设我的服务器代码就是那个呢。。只能同时处理一个请求?
    那么如果我需要同时处理多个。该怎么写?
      

  5.   

    main方法呢?没看到程序是如何启动的,怎么知道你倒底有几个线程?一个Runnable可以被N个线程启动的,但如果没有实现Runnable,你new Thread(this)的时候就要报编译错误啦,还存在什么线程??
      

  6.   

    同时处理几个就 new 几个线程
    然后start 他们
      

  7.   

    在run()方法中加入Thread.sleep()方法,多个线程会同时执行
      

  8.   

    启动就是 Server se=new Server();
    这样子呢。
      

  9.   

    每次new Server();就启动了一个线程啊。
      

  10.   

    噢我好像明白了。。大家再去解释一下以下这个?
    http://community.csdn.net/Expert/topic/4634/4634603.xml?temp=.7479669
      

  11.   

    几个new Thread()就有几个线程!