未知位置的主线程阻塞

时间:2019-07-01 12:43:33

标签: java multithreading

我当前正在尝试创建服务器应用程序。经过测试,我发现代码停止在未知位置。下面显示的.as-console-wrapper { max-height: 100% !important; top: 0; }方法中启动的线程确实会阻塞代码,但是据我所知,这是一个独立的过程,其他所有事物都将忽略它。

下面是启动我的服务器的方法:

start

以下方法是一种测试方法,其中我将public final void start (int port) throws IOException, Exception { // Checks if the server has already been started. if (!isStopped) throw new Exception("Attempted to start a server " + "twice."); isStopped = false; // Place the server in the socket. serverSocket = new ServerSocket(port); // Initializes the connection list connections = new CopyOnWriteArrayList<>(); // Start the connection-handler thread connectionHandler.start(); // Sends success message. logStream.println("[MSG] Server started successfully on port " + port + "."); } 设置为logStream。我看到了打印的消息,但是放置的断点没有跳动。

stdout

主线程在哪里阻塞?而且我是否缺少有关线程如何工作的重要信息?

编辑:我被要求为public static void main (String[] args) throws IOException, Exception { Server server = new Server(); server.start(6333); Input input = new Input(); // Breakpoint placed here input.stringPrompt = "Press Enter to stop..."; input.getString(); // Normally blocks code for some time server.stop(); } 添加一个最小的可复制示例。以下是我创建的connectionHandler内部类的实现方法:

Runnable

0 个答案:

没有答案