// esimerkki luvattomasta säikeen käynnistyksestä import java.lang.Thread; public class SaieEsim { public static void main(String[] args) { System.out.println("pääohjelma alussa"); SaieEsim se = new SaieEsim(); se.testaa(); System.out.println("pääohjelma lopussa"); } public void testaa() { OmaSaie s1, s2; s1 = new OmaSaie("s1"); s2 = new OmaSaie("s2"); s1.start(); System.out.println("pääohjelma s1:n startin jälkeen"); System.out.println("s1:n tila: " + s1.getState()); System.out.println("s2:n tila: " + s2.getState()); try { Thread.sleep(3*1000); } catch (Exception e) { } s2.start(); System.out.println("pääohjelma s2:n startin jälkeen"); try { Thread.sleep(6*1000); } catch (Exception e) { } try { System.out.println("s2:n tila: " + s2.getState()); s2.start(); } catch (Exception e) { System.out.println("pääohjelma s2:n laittoman startin jälkeen: " + e); } try { Thread.sleep(6*1000); } catch (Exception e) { } try { System.out.println("s2:n tila: " + s2.getState()); s2.start(); } catch (Exception e) { System.out.println("pääohjelma s2:n uuden laittoman startin jälkeen: " + e); } } public class OmaSaie extends Thread { String nimi; public OmaSaie(String n) { nimi = n; } public void run() { System.out.println(nimi + " alussa "); try { Thread.sleep(5*1000); } catch (Exception e) { } System.out.println(nimi + " keskellä "); try { Thread.sleep(5*1000); } catch (Exception e) { } System.out.println(nimi + " lopussa "); } } }