此代码表示多线程服务器的实现?

时间:2012-01-14 00:03:56

标签: java multithreading

我的老师向我们展示了实现多线程应用服务器的代码,但我有点困惑。这是多线程服务器的实现吗?我不明白是不是这样。 我们假设要创建一个对象Server s = new Server(port_number)。我们可以断言它是一个多线程服务器吗?

import java.io.*;
import java.net.*;

public class Server implements Runnable
{
private ServerSocket serverSocket;

public MainCenterServer(int port){

    try
    {

        this.serverSocket = new ServerSocket(port);
    }
    catch(IOException ioe) {ioe.printStackTrace(); }

    new Thread(this, "Server").start();
}

@Override
public void run()
{

    while(true)
    {
        try
        {
            Socket socket = serverSocket.accept();

        }
        catch(IOException ioe) {ioe.printStackTrace(); }

    }
}   
}

1 个答案:

答案 0 :(得分:1)

根据您对多线程服务器的定义,是的,此服务器是多线程的。

new Thread(this, "Server").start()run()方法创建一个单独的线程来执行。由于run方法具有无限循环,因此始终等待客户端接受(Socket socket = serverSocket.accept())。