java - 独立的进程,每个进程都在多线程JAVA中运行

标签 java multithreading process scheduled-tasks

我有 4 个独立的进程,需要一个接一个地进行。

第一道工序 第二道工序 第三道工序 第四道工序

由于每个进程都是相互连接的,因此每个进程都应该在一个进程完成之前运行。

每个进程都有自己的可变长度,该长度会随着程序数据输入的增长而变化。

但是有些草图是这样的

程序运行

第一个过程 - 持续 10 秒

第二个进程 - 有 300 个 HTTP get 请求,最近 3 分钟

第三个进程 - 有 600 个 HTTP get 请求,持续 6 分钟

第四个过程 - 持续 1 分钟

程序是用java编写的

感谢您的回答!

最佳答案

Java API 中没有针对您的用例的并发支持,因为您所要求的与并发相反。您有一组四个相互依赖的操作,需要按特定顺序运行。您只需要并且应该只使用一个线程来正确处理这种情况。

根据操作的复杂程度,将每个操作放入自己的方法或类中是合理且谨慎的。

如果您坚持使用多个线程,您的主线程应该维护一个可运行列表。迭代列表。从列表中弹出第一个可运行对象,为该可运行对象创建一个新线程,启动该线程,然后在该线程上调用 join() 。主线程将阻塞,直到可运行完成。该循环将带您按顺序执行所有可运行的操作。同样,没有充分的理由这样做。可能有也可能没有不好的原因。

关于java - 独立的进程,每个进程都在多线程JAVA中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18793089/

相关文章:

java - 为什么Fragment是通过工厂方法实例化的呢?

c++ - std::thread 参数的生命周期

java - 该多线程代码的计数器输出

python multiprocessing BaseManager注册类在Ctrl-C后立即失去连接

java - 将 CacheListener 与 GAE 结合使用

java - 运行使用一些静态文件的现有项目

java - 为什么我不能在我的 JPanel 上绘画?

iphone - GCD Dispatch Sources 和 select() 有什么区别?

python - 通过 SSH 运行 python 进程,即使在关闭 SSH 连接并重新连接后也能监控进程

macos - 如何附加到 LLDB 中的子进程