jag*_*mot 7 java concurrency multithreading
专家 -
我在以下场景中需要一些建议.
我有一个包含任务列表的配置文件.每个任务可以具有零个,一个或多个依赖项.我想并行执行这些任务[现在它们按顺序执行]
我们的想法是拥有一个主程序来读取配置文件并加载所有任务.读取单个任务并将其提供给执行任务[callable],执行任务并返回Future中的结果.当任务提交给执行程序(线程)时,它将监视其依赖关系以首先完成并执行自己的任务.
这是正确的方法吗?有没有其他更好的方法使用Java 1.5功能?
听起来不错,但要注意Thread starvation deadlock.基本上,不要使用有界线程池.
这是一个说明此问题的示例.
http://www.javaconcurrencyinpractice.com/listings/ThreadDeadlock.java
此外,如果您有一个池式数据库连接,也可能遇到问题.10个线程可以阻塞,保持所有池连接,等待第11个线程无法获取第11个池连接,因为没有更多可用..