我的老师向我们展示了实现应用程序服务器多线程的代码,但我有点困惑。这是多线程服务器的实现吗?我不明白是不是这样。
我们假设创建一个对象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(); }
}
}
}
最佳答案
根据您对多线程服务器的定义,是的,该服务器是多线程的。
new Thread(this, "Server").start()
为要执行的 run()
方法创建一个单独的线程。由于 run
方法具有无限循环,因此它将始终等待客户端接受(Socket socket = serverSocket.accept()
)。
关于java - 这段代码代表了多线程服务器的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858901/