Wie funktioniert der parallele Stream in Java nach der Erhöhung von ForkJoinPool?Java

Java-Forum
Guest
 Wie funktioniert der parallele Stream in Java nach der Erhöhung von ForkJoinPool?

Post by Guest »

Ich sehe, dass die Standardgröße von ForkJoinPool.commonPool einen Thread weniger beträgt als die Anzahl der CPU-Kerne. Und um einen benutzerdefinierten Pool zu erstellen, können wir auch eines der folgenden verwenden:
  • Code: Select all

    java.util.concurrent.ForkJoinPool.common.parallelism=30
  • Code: Select all

    ForkJoinPool fjp = new ForkJoinPool(30);
Aber ich habe Schwierigkeiten zu verstehen, wie das tatsächlich funktioniert. Multithreading ist eine Sache des Betriebssystems. Wenn also ein Prozessor 2 Kerne und 4 Threads hat (Details zeigt OperatingSystem) und ich die Java-Parallelität auf 30 geändert habe, wie funktioniert das mit der CPU? Wie viele Threads werden maximal sofort erstellt und können gleichzeitig ausgeführt werden? Werden 30 Threads gleichzeitig erstellt und parallel verarbeitet, oder werden, da die CPU 4 Threads hat, 4 Threads erstellt und wenn sie wieder fertig ist, weitere 4 Threads wie dieser?
Oder sogar Wie stark erhöhen wir die Parallelität, und wird es selbst im Spring Boot-Batch mit höherer Rastergröße immer von den CPU-Kernen und CPU-Threads abhängen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post