我致力于实现一个推理器,一个复杂的东西。我尝试通过使用并行线程来提高性能,但只增加了开销。
我的问题是除了监视器(锁)之外是否还有其他潜在瓶颈。我从程序中删除了所有此类指标,例如 synchronized
和 volatile
。
我使用java.util.concurrent
实用程序,并将数据拆分为线程的独立数组。
最佳答案
您可以做的最有用的想法是确保您的线程正在执行长序列的独立工作。这些序列需要明显长于您可能产生的开销(例如 1 - 10 微秒)
一个常见的错误是将工作分解得太细(在此过程中产生大量开销)。每个核心只需要一项任务即可让每个核心保持忙碌。
如果没有关于您想要做什么以及如何分解工作的大部分详细信息,很难提出更具体的建议。
关于java - java并发的潜在瓶颈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9281845/