Se completo el uso de threads

Cada vez que el codigo necesita separase en dos partes se crea un
thread para una de las mitades, de esta manera se dividen el trabajo,
y conforme se va bajando se crea una estructura del tipo de arbol que
permite un buen número de threads.