import java.io.*; import java.util.*; public class Compteur extends Thread { private int n = 0; private String nom; // constructeur Compteur( String nom, int n ) { this.nom = nom; this.n = n; } // methode run, code du thread public void run() { for ( int i = 1 ; i <= n ; i++ ) { try { sleep( (int)(Math.random()*5000) ); } catch ( InterruptedException ex ) { } System.out.println( nom + " : " + i ); } System.out.println( "*** " + nom + " a fini de compter jusqu'à " + n ); } private static void parseArgs( String[] args ) { if ( (args.length % 2) != 0 ) { System.err.println( "usage : Compteurs ..." ); System.exit( 1 ); } } public static void main ( String[] args ) { // test des arguments parseArgs( args ); // creation de la table de compteurs Compteur[] compteurs; int nb_compteurs = args.length / 2; compteurs = new Compteur[nb_compteurs]; // creation des compteurs for ( int i = 0, j = 0 ; i < args.length ; i += 2, j++ ) compteurs[j] = new Compteur( args[i], Integer.parseInt( args[i+1] ) ); // lancement des compteurs for ( int i = 0 ; i < nb_compteurs ; i++ ) compteurs[i].start(); } }