Ah, tiens en voila un probleme intelligent. Ptet que je l'utiliserai en exam.
Quel est la longueur de ton texte? A mon avis ca cree beaucoup trop de threads. Si tu as un texte de 10000 mots, ca fait 10000 threads. Si tu as un texte de 1 milion de mots, ca fait 1 million de threads.
Tu obtiens un outofmemory exception parceque la JVM est configurer pour ne pas consommer trop de memoire sans que tu ai specifie que c'est ce que tu voulais. Alors tu pourrais changer Xmx et Xms pour donner plus de memoire a ta JVM.
Mais ca ne resoud pas vraiment le probleme de fond. Le probleme de fonc est que tu creer trop de thread. Ce que je te conseilles est d'arreter la decomposition recursive apres X decompositions recursives. Ca te permet de choisir le nombre de tache 2^X assez facilement. En changeant X tu vas augment le parallelisme et la consommation de ressource en memoire et en thread. C'est un parametre a tuner, mais ca devrait relativement bien se passer.
Tu fais ca dans quel cours?