我正在尝试构建一个半文件共享程序,当每台计算机既充当服务器又充当客户端时。
我为多个线程提供了从系统中 DL 文件的选项。
此外,我还有一个可以接收删除消息的用户界面。
我的问题是,我希望在收到删除消息的那一刻,我等待所有 DL 文件的线程完成 DL,并且只执行 file.delete()。 最好的方法是什么?
我考虑过一些数据库来保存 > 并迭代并检查线程是否处于 Activity 状态,但它看起来很笨拙。有没有更好的办法? 谢谢
最佳答案
我认为你可以比使用数据库更简单地做到这一点。我会在 File..a TrackedFile 周围放置一个薄包装类。它里面有文件,以及正在阅读该文件的人数的计数。当您要删除时,只需停止允许新人获取该文件,然后等待计数变为 0。
由于您正在处理访问共享状态的许多线程,因此请确保正确使用 java.util.concurrent
关于java - 在java中删除文件,同时在其他线程中上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3063983/