Para Java 7, que está previsto que venga en el 2009
Comentarios...
Ya no son sólo los de la programación declarativa, especialmente Erlang los que dicen que hay que prestar atención a la ejecución paralela
Dan los mismos argumentos. La ley de Moore ha cambiado. Ahora los procesadores no son más rápidos, ahora incluyen más núcleos
Hablan de dividir los problemas recursivamente
De forma que los problemas más pequeños se puedan ejecutar en paralelo FORK
Y posteriormente combinar los resultados JOIN
Esta técnica la llaman FORK/JOIN
Para evitar la carga de la creación, destrucción y conmutación de threads, utilizan una piscina de threads donde distribuyen los trabajos.
El número de threads disponibles se ajustará al número de núcleos (más o menos)
Opinión subjetiva sin tener suficientes datos...
La idea parece chula y sencilla de utilizar, pero no confío que sea sencillo
Yo creo que este sistema, permitirá que algunos problemas se resuelvan de forma fácil y elegante.
Pero la mayoría de problemas, no serán triviales.
Es una mejora importante, quizá imprescindible, pero creo que utilizarla será un poco compleja y dificultará el diseño
Comprando con otros...
Erlang, está pensado desde el inicio para tabajar no sólo de forma concurrente, también de forma distribuida.
En erlang es natural tener muchos procesos (baratos) y además es muy fácil distribuir el programa. No es necesario pensar de otra forma
Scala
Probablemente Scala pueda aprovecharse mucho mejor de esta técnica que Java.
Si en Scala reduces la programación imperativa al mínimo y utilizas el modelo de actores (coordinación del paralelismo con paso de mensajes), el punto de partida es mucho mejor
Haskell
Como lenguaje declarativo, parte con una ventaja clara respecto a Java
pos eso
No hay comentarios:
Publicar un comentario