Oggi ho trovato un articolo sulla piattaforma Fork / Join-Framework di Java8 e il suo utilizzo per l'implementazione dei flussi paralleli. Mentre capisco l'articolo, non sono del tutto sicuro di cosa dovrei pensare.
Fondamentalmente quello che dice che F / J in congiunzione con i flussi è quasi inutile, e specialmente nel contesto delle applicazioni JEE. Sono elencati alcuni argomenti specifici, come ad esempio:
- it needs a massive volume of easily separable data (aggregate),
- creates copious threads without regard for others,
- has a high potential for stack overflows,
- has a high potential for massive memory usage,
- has a very, very narrow performance window,
- is only designed for one request at a time.
Inoltre, fornisce questi argomenti contro l'approccio di decomposizione ricorsivo di F / J:
Recursive decomposition has an even narrower performance window. In addition to the above dynamic decomposition, recursive decomposition optimized for dyadic recursive division only works well:
- on balanced tree structures (Directed Acyclic Graphs)
- where there are no cyclic dependencies
- where the computation duration is neither too short nor too long
- where there is no blocking.
Poiché questa è l'unica fonte che ho potuto trovare che si lamenta di FJ, non sono sicuro che questo possa essere preso sul serio. I punti sopra citati o altri simili sono una preoccupazione valida?
Più specificamente, Oracle ha una posizione ufficiale riguardo ai limiti del Framework F / J applicato alla parallelizzazione dell'elaborazione dei flussi? In tal caso, ha in programma di fare qualcosa per loro?