![]() |
1
4
我对这个情况有点不清楚。但根据您的描述,似乎从多个线程调用了execute方法。如果是这样,那么是的,您肯定有一个bug,因为如果在任何时候运行两个execute方法,那么您将有一个race条件结束。
有两种方法可以解决这个问题
关于他们不想把变量传给懒惰和imho的说法不应该算作一个有效的论据。 |
![]() |
2
1
所以,执行清除大文件,做一些事情,也许重新加载大文件。 如果重新加载,它会通知另一个线程。 然后,另一个线程会花一些时间通过Web或其他方式发送大型文件。 同时,execute可以做一些其他的事情,然后等待5秒钟,然后重复。 对吗? 如果是这样,那就是 可能的 在发送发生之前,该大型文件将被清除(返回到执行的顶部)。但是,有一些但是:
因此,当catchEvent来检查另一个事件时,“大文件”已经重置。 还是每个catchEvent()都发生在新线程中?我怀疑。
不管怎样,试试看 -增加你的睡眠时间()(就像一个测试-而不是一个解决方案!) -在大文件周围加锁(再次,作为测试)或传递它 而且,检查——在大量大文件被“背靠背”发送之后,这种情况会发生吗?这表明我的1方案——即发送线程落后太多,最终落后5秒以上,并丢失文件。理论上,它还可以跳过一个文件,转到下一个文件。发生了吗? 最后,在我觉得自己 可以 明白你想描述什么-就像另一个答案一样,我发现它不清楚。 所以如果我对这个问题猜错了,那么,嘿,我可能猜错了答案。 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
![]() |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
![]() |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
![]() |
rhymes · 如何让线程操作相同的java列表 3 年前 |