我的老师向我们展示了实现应用服务器多线程的代码,但我有点困惑。这是多线程服务器的实现吗?我不明白是不是这样。我们假设创建一个对象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(); }
}
}
}发布于 2012-01-14 08:12:23
根据您对多线程服务器的定义,是的,此服务器是多线程的。
new Thread(this, "Server").start()为在其上执行run()方法创建了一个单独的线程。由于run方法有一个无限循环,因此它将始终等待客户端接受(Socket socket = serverSocket.accept())。
https://stackoverflow.com/questions/8858901
复制相似问题