MultyThreading debug (java or VS)



我有一个运行良好的应用程序))我用两种变体编写了它 - 使用并行方法和简单的分步,甚至得到了相同的结果......但!在极少数情况下,我的并行代码会产生重复的数据。其中只有很小的一部分 - 对于 400-500 Mb 的有效数据,我只得到 7 到 20 字节的垃圾,甚至每次程序运行都不会。但我不喜欢它!我使用了同步数据存储,但它是第三方代码*。所以我想这个问题就在那里。但是我该如何调试这种奇特的情况呢?

*我有这个第三方存储的代码

很可能您没有考虑某种竞争条件。调试争用条件可能很棘手,因为最终会通过添加任何代码来更改计时。最好的办法是返回并真正考虑数据损坏的位置。

我将补充一件事,尽管它让我陷入了同步。我不知道你的第三方东西,但我正在使用对象进行同步(安卓的东西?我犯了一个错误,使用了只指向两个对象之一(真或假)的布尔对象。因此,虽然我的对象被命名为不同的东西,但我实际上是在他们指向的相同对象上同步!

不确定这是否有帮助,但祝你好运!多线程可能很棘手!我们可能需要主要代码部分来真正研究这个问题。

最新更新