java - 使用多线程时的标准输出

标签 java eclipse multithreading

我正在使用 eclipse,当我正常运行它时,我在控制台中看不到打印的语句,但是当我在 Debug模式下运行它时,我看到它。到底是怎么回事? 这种情况仅发生在某些打印语句上(在服务器-客户端学校项目的服务器端,两者都在本地主机上运行)。

private class GameDriver extends Thread { 
     private Board board; 

     public GameDriver() { 
        board = new Board(); 
     } 

     @Override 
     public void run() { 
         boolean twoActivePlayersAlreadyJoined = false; 
         while (!twoActivePlayersAlreadyJoined) { 
             twoActivePlayersAlreadyJoined = connector.activePlayers.size() >= 2; 
         } 
         System.out.println("Two players already connected, ready to start game"); 
         sendBoardStateToAll(); 
     }
}

最佳答案

Eclipse 调试窗口显示从 Eclipse 实例启动的不同 JVM。

Eclipse Debug Windows showing the threads

如果您在 Eclipse 中启动多个应用程序,那么调试窗口中也会显示多个 JVM。现在,如果您在调试窗口中选择其中一个 JVM,输出控制台将更改为所选 JVM 的标准输出。

但是,如果没有 Debug模式,Eclipse 仅显示 JVM 控制台的标准输出,该控制台最后打印到标准输出。

关于java - 使用多线程时的标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11278133/

相关文章:

java - 有没有办法为 gradle 中新创建的源集指定依赖项?

android - com.android.ide.common.process.ProcessException : Failed to execute aapt

java - SurfaceView,重新打开应用程序后黑屏

c++ - Qt : qt cannot send events to objects owned by a different thread - Why

java - 语法错误;分配数组时

JavaFX 节点未初始化

java - HttpURLConnection 和 json android

java - 程序占用了我的所有资源并且未完成(可能是无限循环?)

c++ - 哪些文件属于 CDT 托管构建中的构建目标?

c++ - 写时复制 (COW) 习惯用法的线程安全实现?