Jeśli chcę uruchomić strumień równolegle w zadaniu tła, czy można go uruchomić z niższym priorytetem? A jeśli tak, to w jaki sposób?Czy można ustawić priorytet wątków w Stream.parallel()?
10
A
Odpowiedz
8
Tak, jest to możliwe.
Procedura jest następująca:
Tworzenie
ForkJoinWorkerThreadFactory
który tworzy wątki z odpowiednim priorytetem.Utwórz
ForkJoinPool
przy użyciu powyższej fabryki nici.Wywołaj równoległy strumień.
Uruchom strumienia przez złożenie go do
ForkJoinPool
tak:
public class MyThread extends ForkJoinWorkerThread {
public MyThread(ForkJoinPool pool, int priority) {
super(pool);
setPriority(priority);
}
}
final int poolSize = ...
final int priority = ...
List<Long> aList = LongStream.rangeClosed(firstNum, lastNum).boxed()
.collect(Collectors.toList());
ForkJoinWorkerThreadFactory factory = new ForkJoinWorkerThreadFactory() {
public ForkJoinWorkerThread newThread(ForkJoinPool pool) {
return new MyThread(pool, priority);
}
};
/*
ForkJoinWorkerThreadFactory factory = pool -> new MyThread(
pool,
priority
);
*/
ForkJoinPool customThreadPool = new ForkJoinPool(
poolSize, factory, null, false);
long actualTotal = customThreadPool.submit(
() -> aList.parallelStream().reduce(0L, Long::sum)).get();
(przykład kod dostosowany z http://www.baeldung.com/java-8-parallel-streams-custom-threadpool)
Powiązane problemy
- 1. C# czy można zmienić priorytet uzyskania blokady?
- 2. C# niższy priorytet wątku w puli wątków
- 3. Poczta PHP() - Jak ustawić priorytet?
- 4. Jak ustawić Priorytet IntentService w Androidzie
- 5. Ustaw priorytet wątku GUI w Qt
- 6. Delayed_Job, Jak ustawić priorytet dla metody user_mailer.rb
- 7. Co oznacza priorytet w Firebase?
- 8. Jak ustawić liczbę wątków w wątku Quartz.NET?
- 9. Jak ustawić priorytet dla domyślnych metryk odstępów w formacie wizualnym?
- 10. Planowanie wątków w systemie UNIX
- 11. Czy można ustawić program MasterType?
- 12. Czy można nadać tymczasową nazwę wątkowi z puli wątków?
- 13. Czy można ustawić warunkowo nagłówki?
- 14. Czy można ustawić szerokość jQGrid w procentach?
- 15. Czy można ustawić prywatną zmienną w Rust?
- 16. Czy można ustawić szerokość elementu w procentach?
- 17. Priorytet zdarzenia Hammer.js
- 18. Priorytet Ograniczeń Autolayout
- 19. Jak ustawić liczbę wątków w kompilacji CMake z wiersza poleceń?
- 20. Ustawienie Żądanie Priorytet Volley
- 21. Czy języki zapytań mają priorytet operatora OR wyższy niż priorytet AND?
- 22. Jak ustawić liczbę wątków w użyciu dla par
- 23. Nie można połączyć wątków w wektorze
- 24. Czy istnieje sposób ustawienia Web Worker na niski priorytet?
- 25. Czy można ustawić programowo punkt kontrolny gdb?
- 26. Czy opcje gitconfig można ustawić warunkowo?
- 27. Priorytet przekierowania IIS:
- 28. Czy można ustawić domyślny tryb pobierania PDO?
- 29. Czy nie można ustawić $ _SERVER ['HTTP_USER_AGENT']?
- 30. Czy można ustawić ImageSize za pomocą displayImage()?
'nowy ForkJoinWorkerThread()' nie kompiluje się. – shmosel
Powiedziałem "coś w stylu" :-) Potrzebował argumentu "pool". –
Nadal się nie kompiluje. Myślę, że musisz ją podklasować. – shmosel