import java.util.concurrent.*; import java.util.logging.Level; import java.util.logging.Logger; //import java.util.logging.Level; //import java.util.logging.Logger; /** * * @author Administratorre */ public class Main implements Runnable { /** * @param args the command line arguments */ public static void main(String[] args) throws InterruptedException, ExecutionException { //DETTA ÄR HUVUTRÅDEN //skaper en tråd (GAMLA METODEN!!!) //Thread trad = new Thread(new Main()); //skapar en trådgrupp på max 2 trådar (NYA METODEN!!!) ExecutorService grupp = Executors.newFixedThreadPool(2); //skickar över Runnable-objekt till trådgruppen (NYA METODEN!!!) (Runnable objektena innehåller kod som man vill att skall köras i trådarna) Future status = grupp.submit(new Main()); grupp.submit(new minKlass()); grupp.submit(new minKlass()); //startar(GAMLA METODEN!!!) //trad.start(); System.out.println("Tråden som jag skapade beräknar någonting, jag väntar så länge..."); //väntar på att tråden skall avsluta (GAMLA METODEN!!!) //trad.join(); //väntar på att tråden skall avsluta (NYA METODEN!!!) status.get(); System.out.println("Nu var den andra tråden klar med sin beräknin, vi slutar för idag..."); int i; } public void run() { int j; //koden som utförs av den egna skapade tråden for(j = 0; j < 5; j++) { try { System.out.println("här beräknar vi någå..."); Thread.sleep(1000); } catch (InterruptedException ex) { //Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } } } class minKlass implements Runnable { public void run() { while(true) { try { System.out.println("jag vill oxå vara med i trådgruppen..."); Thread.sleep(2000); } catch (InterruptedException ex) { //Logger.getLogger(minKlass.class.getName()).log(Level.SEVERE, null, ex); } } } }