import java.util.*; import java.io.*; public class SimpleThread implements Runnable { private boolean terminate; public SimpleThread() { // super("Sleepy Thread"); terminate = true; } public boolean isAlive() { return !terminate; } public void run() { terminate = false; while(!terminate) { System.out.println("SimpleThread is alive!"); // try { // this.sleep(2000); // } catch(InterruptedException ie) { // System.out.println("SimpleThread's sleep was interrupted!"); // break; // } for(int i=1; i<2000000; i+=2) { i--; } } System.out.println("\nSimpleThread is dead..."); } public void kill() { terminate = true; } public static void main(String args[]) { SimpleThread st = new SimpleThread(); new Thread(st).start(); String input = null; BufferedReader stdIn=new BufferedReader(new InputStreamReader(System.in)); try { while((input = stdIn.readLine()) != null) { if(input.equals("Kill")) { st.kill(); break; } } } catch(IOException ioe) { System.err.println("Caught IO Exception: " + ioe.getMessage()); } } }// end of class SimpleThread