java - 多 :Threading - Is this the right approach?

标签 java multithreading concurrency

专家 -

在以下情况下我需要一些建议。

我有一个包含任务列表的配置文件。每个任务可以有零个、一个或多个依赖项。我想并行执行这些任务 [现在它们正在按顺序执行]

想法是有一个主程序来读取配置文件并加载所有任务。读取单个任务并将其交给将执行任务并在 Future 中返回结果的执行程序 [callable]。当任务被提交给执行者(线程)时,它将监视其依赖项是否首先完成并执行自己的任务。

这是正确的方法吗?使用 Java 1.5 功能还有其他更好的方法吗?

最佳答案

听起来不错,但要注意线程饥饿死锁。基本上,不要使用有界线程池。

这里有一个例子可以说明这个问题。
http://www.javaconcurrencyinpractice.com/listings/ThreadDeadlock.java

此外,如果您有池数据库连接,您也可能会遇到问题。 10 个线程可以阻塞,持有所有池连接,等待第 11 个线程无法获取第 11 个池连接,因为不再可用。

关于java - 多 :Threading - Is this the right approach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2524369/

相关文章:

java - 选择正确版本的 Apache Commons Logging

java - 为什么我的 JFrame 不响应鼠标和窗口更改?

java - 在 Intellij-IDEA 调试器中杀死 java 线程

java - 在容器中等待 CountDownLatch 的多个实例

java - 中断来自不同类的java线程

java - 如何绑定(bind)到此 JList 以便更改向用户显示的内容?

java - Redis - 如何配置自定义转换

java - 线程之间的共享内存未更新

java - 访问外部类中的静态变量时静态内部线程的问题

multithreading - Rust 相当于 Intel 的 tbb::concurrent_queue 吗?