我致力于实现推理机,这是一个复杂的工作。我试图通过使用并行化线程来提高性能,但仅增加了开销。

我的问题是,除了监视器(锁)之外,是否还有其他潜在的瓶颈。我从程序中删除了所有类似synchronizedvolatile的指示器。

我使用java.util.concurrent实用程序,并将数据拆分为线程的独立数组。

最佳答案

您可以做的最有用的想法是确保线程正在执行很长的独立工作序列。这些序列必须比可能产生的开销长得多(例如1-10微秒)

一个常见的错误是过于精细地分解工作(在此过程中产生了很多开销)。每个核心只需要执行一项任务即可使每个核心保持繁忙。

由于没有您尝试做的事情以及如何分拆工作的大多数细节,很难提出更具体的建议。

10-07 16:31