java - 在java中删除文件,同时在其他线程中上传文件

标签 java multithreading networking download

我正在尝试构建一个半文件共享程序,当每台计算机既充当服务器又充当客户端时。

我为多个线程提供了从系统中 DL 文件的选项。

此外,我还有一个可以接收删除消息的用户界面。

我的问题是,我希望在收到删除消息的那一刻,我等待所有 DL 文件的线程完成 DL,并且只执行 file.delete()。 最好的方法是什么?

我考虑过一些数据库来保存 > 并迭代并检查线程是否处于 Activity 状态,但它看起来很笨拙。有没有更好的办法? 谢谢

最佳答案

我认为你可以比使用数据库更简单地做到这一点。我会在 File..a TrackedFile 周围放置一个薄包装类。它里面有文件,以及正在阅读该文件的人数的计数。当您要删除时,只需停止允许新人获取该文件,然后等待计数变为 0。

由于您正在处理访问共享状态的许多线程,因此请确保正确使用 java.util.concurrent

关于java - 在java中删除文件,同时在其他线程中上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3063983/

相关文章:

java - Android平台的R.id是如何生成的?

java - Android、Java 上 PEM 文件中的公钥

java - 重新启动 switch case 语句

c# - 写入现有分配控制台的新 cmd 进程

multithreading - MSMQ中需要互斥体吗?

java - 多线程和共享对象

ubuntu - 为什么我的 .NET Core 服务器应用程序在 Ubuntu 中不接受连接,但在 Windows 中可以正常工作?

objective-c - 使用元数据分块发送文件

java - 扩展统计Elasticsearch标准差总体或样本?

networking - Proxifier 是如何工作的?