java - 这段代码代表了多线程服务器的实现?

标签 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(); }

    }
}   
}

最佳答案

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

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

关于java - 这段代码代表了多线程服务器的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858901/

相关文章:

java - 如何使用 headless Chrome 在 Selenium 中启用闪光灯

java - 有关如何从头开始设置非常简单的 J2EE Web 应用程序的教程?

python - 在单独的线程中运行 SimpleXMLRPCServer 并关闭

python - 函数内部的并行性?

java - Swing - 使用相同的组件弹出菜单更改不同的 JLabel

java - Eclipse IDE J2SE-1.5 中的新 Maven 项目问题

c# - UWP CreateFileAsync 线程在 Release模式下编译并选中 Compile with .NET Native 工具链时退出

Objective-C 原子属性线程安全

java - 如何用正则表达式删除第二个子字符串?

java - `ThreadPoolTaskExecutor` 线程在Spring执行后没有被杀死