在JAVA中将单线程服务器转换为多线程服务器

时间:2016-05-02 11:34:33

标签: java sockets server client-server

我需要在多线程服务器中转换这个单线程服务器,所以我能够处理来自服务器的多个请求:

QEvent::ignore()

我如何转换它?感谢所有

2 个答案:

答案 0 :(得分:1)

从服务器中删除“客户端处理”代码,如下所示

    public static void main(String args[]) throws IOException {
        ServerSocket server;
        try{
            server = new ServerSocket(5559);
            System.out.println("Listening for connection on port 5559 ....");

            while (true) {
                Socket clientSocket = server.accept();
                new Thread(new WorkerRunnable(clientSocket)).start();
            }

        }catch (IOException e) {
            System.out.println("Could not listen on port: 4001");
        }
    }

然后你提出的代码进入workerRunnable类的run方法。

答案 1 :(得分:1)

我建议您使用excutorService api。因为它将在幕后管理您的所有线程问题

ExecutorService executor = Executors.newSingleThreadExecutor();
executor.submit(() -> {
  //Your code here
});