java - 使用进程 ID 和线程 ID 命名目录

标签 java multithreading pid

我有一个应用程序,它有几个线程来操作数据并将输出保存在 Linux 或 Windows 计算机中特定目录上的不同临时文件中。这些文件最终需要被删除。

我想做的是能够更好地分离文件,所以我正在考虑通过进程ID和线程ID来做到这一点。这将有助于应用程序节省磁盘空间,因为在线程终止时,可以删除包含该线程文件的整个目录,并让应用程序的其余部分重用相应的磁盘空间。

由于应用程序在 JVM 的单个实例上运行,我假设它将有一个进程 ID,这将是 JVM 的进程 ID,对吗?

既然如此,区分这些文件的唯一方法就是将它们保存在一个文件夹中,该文件夹的名称将与线程 ID 相关。

这种方法合理吗?还是我应该做其他事情?

最佳答案

java.io.File可以create为您提供临时文件。只要保留与每个线程关联的文件的列表,就可以在线程退出时删除它们。您还可以将文件标记为 delete on exit以防线程未完成。

关于java - 使用进程 ID 和线程 ID 命名目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536129/

相关文章:

java - CONNECTED_STRIPE_ACCOUNT_ID 是什么?如何从android平台获取它?

multithreading - 如何在Octave中执行下一个命令之前,等待(音频播放)命令完成?

c - 培养对 waitpid() 和 getpid() 的正确理解

linux - 无法使用在本地机器上运行良好的程序在远程 Linux 机器上进入 Docker 容器?

docker - 为什么我在 mac 上的进程状态列表中看不到 mongo PID

java - 在单个 java 文件中使用两个 java 类的性能问题

java - 如何使用 Kotlin 或 Java 更改可绘制对象的描边颜色

java - 如何在 java servlet 中以分块响应发送 Http 预告片/页脚?

c++ - 工作线程队列的最轻同步原语

multithreading - Clojure go block 中的线程/ sleep