java - 阻塞还会导致线程饥饿吗?

标签 java concurrency

这可能是一个补救性问题,但我只是想了想,我需要澄清一些事情。如果我有一个管理 5 个线程的固定线程池,并且我有 150 个任务 A 实例和 150 个任务 B 实例...并且任务 B 依赖于其任务 A 对应项的完成,因此它可能会阻塞等待任务 A .并且A和B的任务都提交到同一个固定线程池,这会导致线程饥饿,对吗?当一个任务阻塞时,它不会释放该线程来执行另一任务。对吗?

最佳答案

我认为是这样,尽管我很难找到有关它的任何信息。在 Java 中实现抢占式多任务处理没有什么意义。对于我作为一名开发人员来说,假设单个线程只运行一个任务直到完成,比多个任务可以同时共享一个线程更安全。

创建两个单独的执行器:一个用于任务 A,另一个用于任务 B。

关于java - 阻塞还会导致线程饥饿吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942160/

相关文章:

java - 找不到指定的文件

java - 如何在一天的不同时间添加多个通知

java - 带注解的 Hibernate 拦截器

objective-c - NSNotificationCenter 线程安全吗?

ios - Swift:如何确保 seque 在 http 任务完成之前不运行?

java - Java中如何合并两个数组?

java - 如何使用字符串在 ArrayList 中搜索元素?

java - 在这种情况下如何处理并发?

concurrency - 多个并发程序在同一哈希键上执行读取/删除的 Redis 行为

java - 允许一个线程运行,一个等待,然后丢弃其他线程