Wenn ich einen Stream in einer Hintergrundaufgabe parallel ausführen möchte, ist es möglich, ihn in niedrigerer Priorität auszuführen? Und wenn ja wie?Ist es möglich, die Priorität der Threads in Stream.parallel() festzulegen?
10
A
Antwort
8
Ja, es ist möglich.
Das Verfahren ist wie folgt:
ein
ForkJoinWorkerThreadFactory
erstellen, die Fäden mit einer entsprechenden Priorität erzeugt.Erstellen Sie eine
ForkJoinPool
mit der obigen Thread-Fabrik.Instanziieren Sie den parallelen Strom.
den Stream starten, indem sie es auf den
ForkJoinPool
So etwas einreichen:
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();
(Beispielcode angepasst von http://www.baeldung.com/java-8-parallel-streams-custom-threadpool)
Verwandte Themen
- 1. Gibt es eine Möglichkeit, die Priorität des von einem SwingWorker verwendeten Hintergrund-Threads festzulegen?
- 2. Ist es möglich, die Powershell-Opazität über die Befehlszeile festzulegen
- 3. Es ist möglich,% Eigenschaft {PropertyName} dynamisch festzulegen?
- 4. before_filter: Ist es möglich, den Controller für die Aktion festzulegen?
- 5. Ist es für mehrere Threads sicher, ServicePointManager.ServerCertificateValidationCallback festzulegen?
- 6. Ist es möglich, die Nachrichteneigenschaft für KendoDatePicker festzulegen?
- 7. Ist es möglich, die Position eines UIImageView-Bildes festzulegen?
- 8. Ist es möglich, Timeout für eine Thread-Gruppe festzulegen?
- 9. C# ist es möglich, die Priorität der Erlangung einer Sperre zu ändern?
- 10. Ist es möglich, festen DLL-Suchpfad in VisualStudio-Anwendung festzulegen?
- 11. Ist es möglich, Umgebungsvariablen in einer .sublime-Projektdatei festzulegen?
- 12. Ist es möglich, Lockscreen Hintergrundbild programmgesteuert in Android festzulegen?
- 13. Ist es möglich, eine Spaltenbreite für eine Java-Ausgabe festzulegen?
- 14. Ist es möglich, einen Klassennamen für benutzerdefinierte Reaktionskomponenten festzulegen?
- 15. Ist es möglich, mehrere Eingabestreams für Kinesis Analytics festzulegen?
- 16. Google halfdonut Tortendiagramm: Ist es möglich, den Gesamtprozentsatz festzulegen?
- 17. Ist es möglich, einen Primärschlüssel für eine Ansicht festzulegen?
- 18. Ist es möglich, Abhängigkeiten für einen Ordner mit require.js festzulegen?
- 19. Ist es möglich, [XmlAttribute] als Standard für eine Klasse festzulegen?
- 20. Ist es möglich, einer CSS-Klasse Priorität zu geben?
- 21. Ist es möglich, einen Alias für eine Zeichenfolge festzulegen?
- 22. Ist es möglich, festgefahrene Threads in Weblogic zu töten?
- 23. Ist es möglich, später Threads in omp für cyclus hinzuzufügen?
- 24. Ist es möglich, die Hintergrundfarbe eines Sektors in einem Radar-Chart in Chart.js festzulegen?
- 25. Ist es möglich, die Farbe von Text basierend auf einem gebundenen Wert in XAML festzulegen?
- 26. Ist es in PHP-Sitzung möglich, die Ablaufzeit für einen bestimmten Schlüssel/Wert festzulegen?
- 27. Wie kann die Priorität von Threads in Pthreads erhöht werden?
- 28. Ist es möglich, den Kontext festzulegen, nachdem die Komponente in React geladen wurde?
- 29. Wie ist es möglich, den Status der DOORS-Anforderung entsprechend dem Status der ALM-Task festzulegen?
- 30. Ist es möglich, die Position und die automatische Breite mit dem Jquery-Dialogfeld festzulegen?
'neue ForkJoinWorkerThread()' kompiliert nicht. – shmosel
Ich sagte "etwas wie" :-) Es brauchte ein "Pool" -Argument. –
Es kompiliert immer noch nicht. Ich denke, du musst es unterklassifizieren. – shmosel