java - 程序可以在 Eclipse 调试器中运行,但不能在其他地方运行...?

标签 java multithreading eclipse debugging thread-safety

以下代码段:

private class ConnectionControl implements Runnable
{
    public void run()
    {
        while( true )
        {
            if( !cnnct.isInMsgEmpty() )
                System.out.println( "Incoming message: " + cnnct.getInMsg().getPayloadString() ) ;
        }
    }
}

当我在 Eclipse 调试器中运行它并在 System.out 行放置一个断点时可以工作。但是,如果我正常运行它,我不会得到“传入消息...”输出。

关于为什么会这样或者如何调试它有什么想法吗???

<小时/>

啊,明白了...在两个线程使用相同资源的情况下发生了死锁情况。谢谢大家的帮助!

干杯!

最佳答案

有多种方法可以调用 Java 代码,具体取决于您需要的位置。

您所展示的内容不足以独立,如果您尝试将其作为小程序或java应用程序(java .... ConnectionControl)调用,则会导致错误。 Eclipse 可能可以调用 Runnable - 不过我还没有看到。

尝试

  1. 公开类(class)
  2. 添加静态 main 方法,使其成为 Java 应用程序
  3. 在主方法的开头放置一条消息,以便您可以看到它被调用

关于java - 程序可以在 Eclipse 调试器中运行,但不能在其他地方运行...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5691652/

相关文章:

java - MacOS Mojave 无法启动 jar 文件

java - 在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@397740e0 上找不到属性 'compile'

java - 请求处理线程与异步处理的自定义线程与 Web 服务器性能

java - 管理多模块项目的最佳方法?

Java 字符串数组

c++ - Boost::threads 在调试中工作,在发布时不工作

c# - 卡在异步方法

eclipse - 在 Eclipse 中调试 JSP 时如何修改查询字符串

eclipse - 我打算开发一个领域特定的语言编辑器,该工具很容易插入到 Eclipse 中并使用它

android - 错误 : Unable to execute dex