java - 多线程并行处理

标签 java multithreading tomcat parallel-processing threadpool

我有一个 tomcat 服务器,其中有一些运行时间相当长的操作,我觉得如果将这些操作分解并并行处理,可以大大加快速度。就此而言,最佳做法是什么?

我担心,如果我只是创建一些由所有用户共享的线程池,当服务器有许多用户执行这些操作时,性能将不可预测并且会下降(因为他们都将竞争池中的线程)。解决方案只是创建一个非常大的池吗?

任何指导将不胜感激!

最佳答案

线程池是一个诱人的解决方案,但正如您所怀疑的那样,它的可扩展性在真实的多用户场景中可能会受到限制。

实际上,无论如何你都会受到 cpus 数量的限制,而且大多数时候你的用户数量会超过 cpus,所以我的经验是尝试并行化在 web 服务器上运行的问题是徒劳的,除非你有一个疯狂的 CPU 数量。

关于java - 多线程并行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30519694/

相关文章:

java - 如何修复 java.lang.OutOfMemoryError : Java heap space error?

tomcat - 在不解压的情况下查看war文件的内容

java - J2ME 的 JSON 解析器

java - 在JAVA中创建更多线程来并行化线性搜索会消耗更多时间

java - 为什么要同时使用 boolean 值和 interrupt() 来指示线程终止?

c# - 使用 C# Cross Threading 设置标签值

java - 将 Tomcat 安装为 Windows 服务时设置 JAVA_OPTS

java - 如何将主键也用作 JPA 和 Hibernate 的外键引用?

java - 在Spring Controller Spring Boot中提供jsp页面时出错?

java - 如何在 Java 中将 key 归零?