gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:57:34 27 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

如果您必须等待所有读者完成,您的删除事件处理线程(可能是您的 UI)将变得无响应。而是将删除排队并定期轮询可以处理的删除。您可以使用:

private class DeleteRunnable implements Runnable {
public void run() {
while (!done) {
ArrayList<DeletedObject> tmpList = null;
synchronized (masterList) {
tmpList = new ArrayList<DeletedObjects>(masterList);
}

for (DeletedObject o : tmpList)
if (o.waitForReaders(500, TimeUnit.MilliSeconds))
synchronized (masterList) {
masterList.remove(o);
}
}
}
}

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com