|
Duplicate :
|
|
|
Relates :
|
|
|
Relates :
|
In 8u, CompletableFuture calls Runtime.availableProcessors during spin in waitingGet:
private Object waitingGet(boolean interruptible) {
...
while ((r = result) == null) {
if (spins < 0)
spins = (Runtime.getRuntime().availableProcessors() > 1) ?
1 << 8 : 0; // Use brief spin-wait on multiprocessors
Unfortunately, that falls victim to JDK-8227006, which makes it too costly. This is fixed in 9 with JDK-8134851, but that patch is too large and intrusive to backport to 8u. Therefore, we should consider backporting the small part of that patch that deals with availableProcessors handling.
|