package javacodebook.thread.stopthread; /** * Ein Thread mit einer sanften Methode, gestoppt zu werden. */ public class StartStopThread extends Thread { boolean stop = false; public void run() { // Der Thread läuft solange, bis er ein Stopsignal erhält. while(!stop) { System.out.println("Thread: läuft"); try { sleep(2000); } catch (Exception ignore) {} } System.out.println("Thread: gestoppt"); } /** * Dem Thread wird angezeigt, dass er stoppen soll */ public void stopExecution() { stop = true; } public static void main(String []args) throws Exception { StartStopThread sst = new StartStopThread(); System.out.println("Main: starte Thread"); sst.start(); sleep(4500); // Der Thread wird gebeten, zu stoppen. System.out.println("Main: stoppe Thread"); sst.stopExecution(); System.out.println("Main: fertig"); } }