java - 创建线程与流程以更好地维护-设计方法

标签 java multithreading process maintenance

我有一种情况,我想使用第三方Rest API查询组织的员工信息。这将针对不同的组织完成,我们将获得员工列表,我希望每个组织大约有500至5万名用户。

我现在处于poc阶段,在这里我想决定处理此问题的最佳方法。一种选择是创建一个单独的Java进程,并为每个用户生成一个线程。另一个方法是为每个用户创建一个流程,我们在其中编写一些shell脚本来提供每个员工的详细信息。

我的问题是,从维护角度来看,这将是一个更好的解决方案。由于取决于第三方API,因此某些用户可能会遇到问题。从支持点到调试点,这可能是更好的方法。这可能是一个非常开放的问题。我想知道,如果以前有人遇到过任何情况,他们的处理方式是什么。

最佳答案

如果您有许多需要同时运行的任务,则要使用Thread Pools。线程池拥有多个线程,是需要完成的工作单元。然后,该池将每个工作单元传递给第一个空闲线程,为您管理实际执行。

池中究竟应该包含多少个线程取决于您的确切要求,但是假设您将频繁轮询这些API,则每个API可能会有一个线程是合理的。

根据您的描述,不需要单独的过程。

关于java - 创建线程与流程以更好地维护-设计方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30821758/

相关文章:

windows - 模拟网络到特定进程

java - 从批处理文件的进程中读取 InputStream 会跳到下一行

java - ProcessBuilder - 启动另一个进程/JVM - 如何?

java - 无法使用 Web 内容文件夹中图像的 getClass.getResource 创建 URL

java - 如何使用Java套接字在不同网络之间进行通信?

python - 相当于Java的Python同步

Android:使用 AsyncTask 时出现 "Calling thread must be a prepared Looper thread"错误

java - 使用 Java 使用 "N choose K"的字符串字母组合

java - 如何用Java制作一个可移植应用程序(jar+sqlite)?

c++ - 对 boost::asio::io_context::run() 和 boost::thread::join() 感到困惑