我编写了一个应用程序,它必须从数千个大型 docx 文件中解析和检索一些数据。它将在具有许多 CPU、大量 RAM 和 RAID 阵列中的快速 SSD 的高性能生产服务器上运行,因此显然我想充分利用所有可用的性能能力。
我发现我的应用程序在许多并发线程中成功地完成了任何其他工作,但它无法使用 docx4j 库同时解析许多 docx 文件。此外,这个库不能在许多单独的线程中安全地支持多个 WordprocessingMLPackage 类的实例,该类包含来自 docx 文件的数据。
谷歌搜索和检查库的源代码确认它完全不是线程安全的(例如,它的类包含许多不能同时使用的静态字段和实例)。
所以我有一些问题要问:
- 是否有任何其他具有相同功能的库可以保证是线程安全的?
- 我可以在一些单独的进程而不是单独的线程中启动我的工作人员来解决这个问题吗?如果是这样,它会降低我的应用程序的性能有多严重?