java - 使用和不使用调试器运行多线程程序有什么区别吗?除了明显的
问题描述
我正在做一个小项目,试图将蓝牙传统广告与扩展广告进行比较(模拟)。所以我有两个线程(每个设备一个),他们正在做他们的任务。我正常运行程序并且它不工作(有点预期)但是当我使用调试器运行它时它可以工作。我只有一个断点,它是在任何有意义的操作之后。这就是我的问题出现的时候。使用或不使用调试器运行它有什么区别。
我正在使用 IntelliJ IDEA(最新版本)和 Java 1.8
正常运行时的输出(被我阻止):
343
Process finished with exit code -1
使用调试器输出:
Connected to the target VM, address: '127.0.0.1:58359', transport: 'socket'
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
343
21 .. -39
[21, ... -39]
DONE
Disconnected from the target VM, address: '127.0.0.1:58359', transport: 'socket'
Process finished with exit code 0
带断点的代码片段
void secondaryListen() {
if(!Simulation.World.channels[this.receivedAdvertisement.channel].empty) {
SecondaryMessage currentMessage = (SecondaryMessage) Simulation.World.channels[this.receivedAdvertisement.channel].getPayload();
for (byte b : currentMessage.content) {
System.out.print(b + " ");
this.receivedData.add(b);
}
System.out.println();
this.mode = Mode.SCAN;
if(currentMessage.lastMessage) {
this.mode = Mode.FINISHED; //BREAKPOINT ON THAT LINE
System.out.println(this.receivedData.toString());
}
}
}
提前感谢所有答案!
解决方案
推荐阅读
- java - 如何在 Java 中居中对齐和格式化字符串
- json - 如何将多个参数从 JSON 导出到 AWS SSM 参数存储
- android - Kotlin/Android:无法使用 Canvas 将 LiveData 传递给 customView
- c++ - std::thread 成员对象在终止时崩溃
- sql-server - SQL Server 未正确更新数据
- javascript - 使用 MYSQL 在 app.get 中查询永远不会完成
- java - 画布上的无限网格
- high-availability - Pacemaker ipaddr2 资源没有失败 correclty
- c# - 使用datatable js,razor在与模型相关的模型列表上添加,编辑,删除,并在客户端执行
- python - 在 py2app 中捆绑 ImageMagick