Réponse acceptée !
Salut,
Si tu as deux coeurs, et pas trop de logiciels en tâches de fond, tu auras en 2 threads java en cours d'exécution simultanément. De plus, à chaque instruction, et non pas à chaque boucle, le thread utilisant un processeur est susceptible de passer son tour (surtout avec des System.out.print qui sont de (très) très longues instructions.
De plus coucou747 a raison, ce n'est pas parce que tu as crée 10 threads qu'ils vont magiquement se répartir le travail. C'est à toi de coder la répartition des calculs, eh oui : c'est pas magique sinon ça ferait longtemps que Crysis serait optimisé pour les multi-coeurs.
Il existe des patrons de conception (des canvas d'applications en quelque sorte) qui t'aident à faire ça mais il y a plein de façon de le faire seul, à toi de réfléchir. Comme l'a dit coucou747, tu peux par exemple attribuer un nombre sur 10 à chaque thread. Par exemple, le thread 0 fera les carrés de 0, 10, 20, ... le thread 1 les carrés de 1, 11, 21, etc tandis que le thread 9 s'occupera de 9, 19 ,29, ...
Autre chose, quand ce sera fait et que ça marchera tu verras que les calculs seront probablement pas fait dans l'ordre, car les threads n'iront pas exactement à la même vitesse, par exemple 24² pourra être calculé avant 20². Si tu veux que les calculs soient faits dans l'ordre ça va être un peu compliqué il faudra que tu programme un rendez-vous entre les processus ->
[ Lien ]Sinon, le fait d'afficher les réponses dans la console perturbe beaucoup l'exécution (si tu les enlèves, tu verras que le calcul se fait instantanément ou presque)