Почему и когда «Превышен лимит потока при замене заблокированного рабочего» срабатывает, когда я использую parallelStream в Java11 - PullRequest
0 голосов
/ 12 июня 2019

У меня давно работает приложение java11, и в последнее время я обнаруживаю, что это происходит все больше и больше с каждым днем ​​

java.util.concurrent.RejectedExecutionException: превышен предел потока при замене заблокированного работника

Я знаю, что не следует помещать слишком много операций блокировки в parallelStream, но я должен стараться изо всех сил ускорить приведенный выше код, чтобы я отвечал на мой запрос как можно скорее.

IntStream.range(0, nums).parallel().forEach((x) -> {
   IntStream.range(0, nums2).parallel().forEach((y) -> {
      IntStream.range(0, 20).parallel().forEach((z) -> {
    // do some business logic which use jni and cost cpu much ,mean rtt is about 400ms and sometimes upper99 could reach 10s.
      });
   });
});
...