RFA 8056248: Improve ForkJoin thread throttling
Chris Hegarty
chris.hegarty at oracle.com
Thu Sep 11 12:40:30 UTC 2014
On 11 Sep 2014, at 13:37, Paul Sandoz <paul.sandoz at oracle.com> wrote:
> Hi,
>
> After some off-list discussion and contemplation a implementation note is considered the best way forward (a middle ground between saying nothing and updating the spec).
>
> Here are the proposed doc updates for review to 8u (which requires a CCC) that would be applied on top the the 9 patch:
Reviewed. Thanks Paul.
-Chris.
> diff -r 7b40710067fa src/share/classes/java/util/concurrent/ForkJoinPool.java
> --- a/src/share/classes/java/util/concurrent/ForkJoinPool.java Fri Sep 05 10:54:28 2014 +0200
> +++ b/src/share/classes/java/util/concurrent/ForkJoinPool.java Thu Sep 11 14:35:00 2014 +0200
> @@ -143,9 +143,6 @@
> * - the class name of a {@link ForkJoinWorkerThreadFactory}
> * <li>{@code java.util.concurrent.ForkJoinPool.common.exceptionHandler}
> * - the class name of a {@link UncaughtExceptionHandler}
> - * <li>{@code java.util.concurrent.ForkJoinPool.common.maximumSpares}
> - * - the maximum number of allowed extra threads to maintain target
> - * parallelism (default 256).
> * </ul>
> * If a {@link SecurityManager} is present and no factory is
> * specified, then the default pool uses a factory supplying
> @@ -162,6 +159,15 @@
> * pools with greater than the maximum number result in
> * {@code IllegalArgumentException}.
> *
> + * <p>This implementation supports an additional common pool parameter that may
> + * be controlled by setting the following
> + * {@linkplain System#getProperty system property}:
> + * <ul>
> + * <li>{@code java.util.concurrent.ForkJoinPool.common.maximumSpares}
> + * - the maximum number of allowed extra threads to maintain target
> + * parallelism (default 256).
> + * </ul>
> + *
> * <p>This implementation rejects submitted tasks (that is, by throwing
> * {@link RejectedExecutionException}) only when the pool is shut down
> * or internal resources have been exhausted.
>
> Paul.
>
> On Sep 5, 2014, at 11:35 AM, Paul Sandoz <Paul.Sandoz at oracle.com> wrote:
>
>> Hi,
>>
>> I would like to backport the improvements to the fork join framework from 9 to 8u40:
>>
>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2014-August/028419.html
>>
>> https://bugs.openjdk.java.net/browse/JDK-8056248
>>
>> http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8056248-fj-thread-throttling/webrev/
>>
>> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/7af64e3e095d
>>
>> The changeset (when shuffled) imports cleanly into jdk8u-dev/jdk.
>>
>> However, it also introduced a new system property ("java.util.concurrent.ForkJoinPool.common.maximumSpares"). I am not sure if we can add such a new feature to an 8u release, any advice? If that is not possible I suggest that reference to that property be removed from the JavaDoc, since that makes it easier to support further backports:
>>
>> diff -r a6403166fc7f src/share/classes/java/util/concurrent/ForkJoinPool.java
>> --- a/src/share/classes/java/util/concurrent/ForkJoinPool.java Fri Sep 05 10:54:28 2014 +0200
>> +++ b/src/share/classes/java/util/concurrent/ForkJoinPool.java Fri Sep 05 11:26:49 2014 +0200
>> @@ -143,9 +143,6 @@
>> * - the class name of a {@link ForkJoinWorkerThreadFactory}
>> * <li>{@code java.util.concurrent.ForkJoinPool.common.exceptionHandler}
>> * - the class name of a {@link UncaughtExceptionHandler}
>> - * <li>{@code java.util.concurrent.ForkJoinPool.common.maximumSpares}
>> - * - the maximum number of allowed extra threads to maintain target
>> - * parallelism (default 256).
>> * </ul>
>> * If a {@link SecurityManager} is present and no factory is
>> * specified, then the default pool uses a factory supplying
>>
>>
>> Thanks,
>> Paul.
>
More information about the jdk8u-dev
mailing list