Exemple32_ThreadSimpleRetourTélécharger Exemple de la creation de quatres threads : deux par heritage de la classe Thread, deux autres par implementation de l'interface Runnable Exemple32.java // Exemple de la creation de quatres threads : deux par heritage de la classe Thread, deux autres par implementation de l'interface Runnable public class Exemple32 { public static void main(String... args) { // Creation de deux threads (par heritage) MonThreadExtends t1 = new MonThreadExtends("A"); MonThreadExtends t2 = new MonThreadExtends("B"); // Creation de deux threads (par interface) MonThreadImplements mt3 = new MonThreadImplements("1"); Thread t3 = new Thread(mt3); MonThreadImplements mt4 = new MonThreadImplements("2"); Thread t4 = new Thread(mt4); // Demarrage du thread 1 Terminal.ecrireStringln("Demarrage du Thread 1"); t1.start(); // Demarrage du thread 2 Terminal.ecrireStringln("Demarrage du Thread 2"); t2.start(); // Demarrage du thread 3 Terminal.ecrireStringln("Demarrage du Thread 3"); t3.start(); // Demarrage du thread 4 Terminal.ecrireStringln("Demarrage du Thread 4"); t4.start(); // Si RC alors on arrete le thread 1 Terminal.lireString(); Terminal.ecrireStringln("\nArret du Thread 1"); t1.stop = true; // Si RC alors on arrete le thread 2 Terminal.lireString(); Terminal.ecrireStringln("\nArret du Thread 2"); t2.stop = true; // Si RC alors on arrete le thread 3 Terminal.lireString(); Terminal.ecrireStringln("\nArret du Thread 3"); mt3.stop = true; // Si RC alors on arrete le thread 4 Terminal.lireString(); Terminal.ecrireStringln("\nArret du Thread 4"); mt4.stop = true; } } // -------------------------------------- class MonThreadExtends extends Thread { private String s; public boolean stop; public MonThreadExtends(String s) { this.s=s; this.stop=false; } public void run() { while(! this.stop) { System.out.print(s); try{Thread.sleep(200);}catch(Exception ex){}; } } } // -------------------------------------- class MonThreadImplements implements Runnable { private String s; public boolean stop; public MonThreadImplements(String s) { this.s=s; this.stop=false; } public void run() { while(! this.stop) { System.out.print(s); try{Thread.sleep(1000);}catch(Exception ex){}; } } } Terminal.java import java.io.*; public class Terminal{ static BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); public static String lireString() // Lire un String { String tmp=""; char C='\0'; try { tmp = in.readLine(); } catch (IOException e) { exceptionHandler(e); } return tmp; } // fin de lireString() public static int lireInt() // Lire un entier { int x=0; try { x=Integer.parseInt(lireString()); } catch (NumberFormatException e) { exceptionHandler(e); } return x ; } public static boolean lireBoolean() // Lire un entier { boolean b = true; try { b = Boolean.valueOf(lireString()).booleanValue(); } catch (NumberFormatException e) { exceptionHandler(e); } return b; } public static double lireDouble() // Lire un double { double x=0.0; try { x=Double.valueOf(lireString()).doubleValue(); } catch (NumberFormatException e) { exceptionHandler(e); } return x ; } public static char lireChar() // Lire un caractere { String tmp=lireString(); if (tmp.length()==0) return '\n'; else { return tmp.charAt(0); } } public static void ecrireString(String s){ // Afficher un String try{ System.out.print(s); } catch (Exception ex){ exceptionHandler(ex); } } public static void ecrireStringln(String s) // Afficher un String { ecrireString(s); sautDeLigne(); } // fin de ecrireStringln() public static void ecrireInt(int i) // Afficher un entier { ecrireString(""+i); } public static void ecrireIntln(int i) // Afficher un entier { ecrireString(""+i); sautDeLigne(); } public static void ecrireBoolean(boolean b){ ecrireString(""+b); } public static void ecrireBooleanln(boolean b){ ecrireString(""+b); sautDeLigne(); } public static void ecrireDouble(double d) // Afficher un double { ecrireString(""+d); } public static void ecrireDoubleln(double d) // Afficher un double { ecrireDouble(d); sautDeLigne(); } public static void ecrireChar(char c) // Afficher un caractere { ecrireString(""+c); } public static void ecrireCharln(char c) // Afficher un caractere { ecrireChar(c); sautDeLigne(); } public static void sautDeLigne(){ try{ System.out.println(); }catch(Exception ex){ exceptionHandler(ex); } } protected static void exceptionHandler(Exception ex){ TerminalException err = new TerminalException(ex); throw err; } public static void ecrireException(Throwable ex){ ecrireString(ex.toString()); ex.printStackTrace(System.err); } } class TerminalException extends RuntimeException{ Exception ex; TerminalException(Exception e){ ex = e; } } compil.bat mkdir bin del /f /s /q bin\*.class javac -d bin *.java pause run.bat cd bin java Exemple32 pause