Hay varios problemas con Java que solo están pidiendo a gritos una solución multiproceso. Dos He golpeado recientemente y resuelto fueron:
- File.list tiene problemas horribles si hay muchos miles de archivos de la carpeta.
- SAXParser.parse es un analizador de inserción. Muchos usuarios de xml preferirían un analizador de extracción pero preferirían no agregar otra biblioteca.
Ambos pueden ser ayudados considerablemente con una solución simple de dos hilos.
En el caso de File.list, ejecute el File.list
en un hilo separado con una especial FileFilter
que publica todos los archivos presentados a ella a un BlockingQueue
. Un iterador en el BlockingQueue
se puede usar para entregar los archivos a la persona que llama. Una mejora para listar el directorio recursivamente es una adición fácil si el código está escrito correctamente.
El SAXParser.parse se puede girar al revés de una manera similar.
He hecho ambas cosas recientemente y la experiencia me pareció muy esclarecedora.
http://stackoverflow.com/questions/ 1835076/small-project-to-learn-java-threads Creo que este enlace puede ayudarle – vinay
+1 para un buen puntero. – inder
Me gusta ese enlace, esp. la sugerencia de una aplicación cliente-servidor. @Suman_Sohal, si tiene inclinaciones matemáticas, las operaciones de la matriz, como la multiplicación, son clásicos para aprender el subprocesamiento múltiple. – user949300