使用多个测量线程有什么好处?

What's the benefit of using multiple measurement threads?

刚刚注意到JMH允许我们使用多个测量线程(默认情况下,只使用一个线程)。

使用多个测量线程有什么意义?它只是为了测试被基准测试代码中的线程争用吗?或者基准测试会更快完成吗?

JMH 中的线程是关于在 microbenchmark-level 上测试并发代码的,例如,如果您想将锁与对共享资源使用 compare-and-swap 进行比较。

一般来说,JMH 需要 运行 足够频繁地编写代码,例如触发 JIT 编译,但在我看来,这更像是 side-effect。如果您的应用程序 single-threaded 而您 运行 是多线程基准测试,即使它 运行 更快也不能代表您的应用程序。