![]() |
1
4
我对这个情况有点不清楚。但根据您的描述,似乎从多个线程调用了execute方法。如果是这样,那么是的,您肯定有一个bug,因为如果在任何时候运行两个execute方法,那么您将有一个race条件结束。
有两种方法可以解决这个问题
关于他们不想把变量传给懒惰和imho的说法不应该算作一个有效的论据。 |
![]() |
2
1
所以,执行清除大文件,做一些事情,也许重新加载大文件。 如果重新加载,它会通知另一个线程。 然后,另一个线程会花一些时间通过Web或其他方式发送大型文件。 同时,execute可以做一些其他的事情,然后等待5秒钟,然后重复。 对吗? 如果是这样,那就是 可能的 在发送发生之前,该大型文件将被清除(返回到执行的顶部)。但是,有一些但是:
因此,当catchEvent来检查另一个事件时,“大文件”已经重置。 还是每个catchEvent()都发生在新线程中?我怀疑。
不管怎样,试试看 -增加你的睡眠时间()(就像一个测试-而不是一个解决方案!) -在大文件周围加锁(再次,作为测试)或传递它 而且,检查——在大量大文件被“背靠背”发送之后,这种情况会发生吗?这表明我的1方案——即发送线程落后太多,最终落后5秒以上,并丢失文件。理论上,它还可以跳过一个文件,转到下一个文件。发生了吗? 最后,在我觉得自己 可以 明白你想描述什么-就像另一个答案一样,我发现它不清楚。 所以如果我对这个问题猜错了,那么,嘿,我可能猜错了答案。 |
![]() |
user107586 · 如何处理等待句柄不会导致无限循环? 7 月前 |
![]() |
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 7 月前 |
![]() |
BenjiFB · C#内存缓存:在一次操作中追加到列表? 7 月前 |
![]() |
András Takács · Python多线程问题 11 月前 |
|
András Takács · Python多线程错误 11 月前 |