我是问题是: 服务器端可能执行多个线程,,主线程要对每个线程的数据进行计算,然后比较每个线程的数据,,选取最大的数据, 怎样实现??

解决方案 »

  1.   

    问题是,,用什么来收集每个线程产生的数据???怎么来设定时间???如在以下代码,是个无穷的循环,不会停止啊..
     try {
          serverSocket = new ServerSocket(6666);                     
            while (true) {
             Socket clientSocket = serverSocket.accept();
             ServerThread client = new ServerThread(clientSocket); client.start();
    }
         } catch (IOException e) {
    e.printStackTrace();
         }
      

  2.   

    用输人流获取每个客户机的数据 然后在 ServerThread的run方法内用while语句获取每个线程输入流里的数据 进行比较 比较出最大的数
      

  3.   

    问题是,,用什么来收集每个线程产生的数据???怎么来设定时间???如在以下代码,是个无穷的循环,不会停止啊..
    关于这个问题,前提是客户端启动,与服务器建立连接,后服务器端才会建立相应的套接字,若客户端不启动,它也不循环的.还有,在连接了指定的服务器套接字后,应写出关闭套接字的语句,IF(client!=null)
    client.close();
      

  4.   

    问题是,用什么来收集每个线程产生的数据
    你的数据放在那,就去那取数据,别人怎么知道你的程序数据放在那里.???怎么来设定时间???
    线当然是Thread   extends Thread   sleep(你的等待时间,单位毫秒);如在以下代码,是个无穷的循环,不会停止啊..
    while (true) {
       你要退出不会 break; 吗?如是那你就有必要从基础在好好的学学了
    }
      

  5.   

    不知道你的线程总数是不是固定的,如果是固定的可以用CyclicBarrier类。final int THREADS_NUMBER = ...;
    CyclicBarrier barrier;class ClientThread implements Runnable
    {
      ...
      public void run()
      {
        ...;//要完成的任务
        barrier.await();
      }
    }barrier =  new CyclicBarrier(THREAD_NUMBER, 
                new Runnable()
                {
                  public void run()
                  {
                    ...;//比较每个线程的数据);
                  }
                });