/** * Det f?rste alle skal gj?re er ? lage et program som genererer like * mange tr?de k (i tillegg til main-tr?den) som det er kjerner p? den * maskinen du sitter p?. Hver tr?d skal ha en lokal variabel * 'ind'. (ind = 0,1,..,antallTr?der-1) * * metoden 'run' skal du plassere f?rst denne setningen: * a) System.out.println("Traad nr:" + ind+"sier hei"); * * og s? f?lgende to setninger i en try-catch blokk: * * b) * try { * wait(1000); * System.out.println("Traad nr:" + ind + "sier hei etter ? ha ventet ett sekund"); * } catch (Exception e) { return; } * * Kj?r programmet flere ganger ¨C b?de a) og b) ¨C og se etter om * setningene kommer i ¡®riktig¡¯ rekkef?lge hver gang. Blandes * utskriften? */ public class Uke1_Oppg1 { public static void main(String[] args) { new Uke1_Oppg1().executeThreads(); } public void executeThreads() { int numberOfCores = Runtime.getRuntime().availableProcessors(); for (int i = 0; i < numberOfCores; i++) { new Thread(new WorkerThread(i)).start(); } } class WorkerThread implements Runnable { private int ind; WorkerThread(int ind) { this.ind = ind; } /** * Metoden fra Runnable-interfacet, hvor tr?dene startes. */ public void run() { System.out.println("Traad nr: " + ind + " sier hei"); synchronized(this) { // wait(..) has to be synchronized try { wait(1000); System.out.println("Traad nr: " + ind + " sier hei etter ? ha venta ett sekund"); } catch (InterruptedException e ) { e.printStackTrace(); System.exit(1); } } } } }