gpt4 book ai didi

java - 线程利用策略

转载 作者:行者123 更新时间:2023-12-01 12:11:23 26 4
gpt4 key购买 nike

在我的Java系统中,我有X个人,每个人有Y个字符串,其中Y >> X。我需要对每个字符串执行一些复杂的计算。为了加速该过程,我在单独的线程中运行字符串计算过程(线程数 = CPU 核心 * 2)。我的问题是我是否应该将每个人的处理也放在单独的线程中,或者在单独的线程中仅运行字符串处理就足够了?

除了基于线程的字符串计算之外,我还应该在单独的线程中执行人员处理吗?或者,因为我已经使用每个 CPU 核心数的最大最佳线程数进行字符串处理,所以如果将人员置于单独的线程中,我将不会受益。

所有人都是相互独立的。所有人的弦都是相互独立的。

最佳答案

我认为创建额外的线程会减慢处理速度,因为创建新线程需要一些额外的开销。但为了确保万无一失,请尝试做一个实验。尝试使用不同数量的线程,然后选择最佳数量。

附注与本主题中的其他人一样,我建议使用线程池来完成此任务。

P.P.S。考虑使用 java.util.concurrentFixedThreadPool(启动 n 个线程,如果有更多任务,它们正在等待空闲线程)或 CachedThreadPool(如果有更多任务创建新线程,否则重用现有的 hibernate 线程)。

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html#newFixedThreadPool(int) https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html#newCachedThreadPool()

关于java - 线程利用策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27257359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com