package javacodebook.thread.simplethread; import java.util.Random; /** * Eine Klasse, die von der Klasse Thread erbt und damit dazu genutzt werden * kann, parallel zu anderen Programmteilen abgearbeitet zu werden. */ public class SimpleThread extends Thread { private static Random random = new Random(System.currentTimeMillis()); public SimpleThread(String name) { super(name); } public void run() { // Der Thread zeigt 10 mal an, dass er lebt und legt sich zwischendurch // für eine zufällige Zeit zwischen 0 und 1 Sekunde schlafen. for (int i=0; i<10; i++) { // Es geht auch ohne sleep. Mit sleep läßt sich das Geschehen aber // besser verfolgen. try { sleep(random.nextInt(1000)); } catch (InterruptedException e) { e.printStackTrace();} // Ein Lebenszeichen des Thread. Damit auch sicher ist, dass die // Ausgaben dann erscheinen, wenn sie produziert werden, wird // die Methode flush() aufgerufen. System.out.println(getName() + ": " + i ); System.out.flush(); } System.out.println(getName() + ": fertig"); } public static void main(String []args) { // Zur Verdeutlichung der Nebenläufigkeit werden zwei Threads erzeugt // und anschliessend gestartet. SimpleThread s1 = new SimpleThread("Anton"); SimpleThread s2 = new SimpleThread("Berta"); // Jetzt gehts los. Die Threads werden gestartet. s1.start(); s2.start(); System.out.println("Main: fertig"); } }