Wo ist die schliessende Klammer?
-
Das mag jetzt nur ne Kleinigkeit sein, aber ich raffs trotzdem nicht.
Hier erst mal der Code:class Service implements Runnable { private boolean[] array; private int start; private int end; private int result; public Service(boolean[] array, int start, int end) { this.array = array; this.start = start; this.end = end; } public int getResult() { return result; } public void run() { for(int i = start; i <= end; i++) { if(array[i]) result++; } } } public class AsynchRequest { private static final int ARRAY_SIZE = 100000; private static final int NUMBER_OF_SERVERS = 100; public static void main(String[] args) { // Startzeit messen long startTime = System.currentTimeMillis(); // Feld erzeugen mit zufälliger Mischung aus true und false boolean[] array = new boolean[ARRAY_SIZE]; for(int i = 0; i < ARRAY_SIZE; i++) { if(Math.random() < 0.1) array[i] = true; else array[i] = false; } // Feld für Services und Feld fuer Threads erzeugen Service[] service = new Service[NUMBER_OF_SERVERS]; Thread[] serverThread = new Thread[NUMBER_OF_SERVERS]; // Threads erzeugen int start = 0; int end; int howMany = ARRAY_SIZE / NUMBER_OF_SERVERS; for(int i = 0; i < NUMBER_OF_SERVERS; i++) { end = start + howMany - 1; service[i] = new Service(array, start, end); serverThread[i] = new Thread(service[i]); serverThread[i].start(); start = end + 1; } // Synchronisation mit Servern (auf Serverende warten) try { for(int i = 0; i < NUMBER_OF_SERVERS; i++) serverThread[i].join(); } catch(InterruptedException e) { } // Gesamtergebnis aus Teilergebnissen berechnen int result = 0; for(int i = 0; i < NUMBER_OF_SERVERS; i++) result += service[i].getResult(); // Endzeit messen long endTime = System.currentTimeMillis(); float time = (endTime-startTime) / 1000.0f; System.out.println("Rechenzeit: " + time); // Ergebnis ausgeben System.out.println("Ergebnis: " + result); } }
Das Programm läuft so wie es ist (ausm Script per c+p)
Nur fehlt meiner Meinung nach die Klammer, die die public class AsynchRequest schliesst.. Bin ich blind? Ich habe die Klammern nach dem pasten so verschoben, dass immer logische Blöcke eingeschlossen sind.. Scheint als hätte ich da was falsch gemacht.So und nun zum etwas komplexeren Teil^^:
Wer sich die Mühe machen möchte, könnte mir mal folgende Aufgabe lösen:
Testen des Verhaltens, wenn NUMBER_OF_SERVERS mit 1, 10, 100, 1.000, 10.000 und
100.00 gesetzt wird und Erklärung des Ergebnisses.Und nein, das ist jetzt keine Faulheit. Ich bin selber dran, dass Teil zu verstehen nur wäre ich für Tipps schon dankbar.
-
Die letzten beiden Klammern schreien einen eigentlich gerade zu an, dass sie falsch eingerückt sind (besonders die vorletzte).
-
omg hast Recht ^^ Ich sach ja ich werde alt und tattrig und blind *g*
-
ich empfehle einen editor der einrückung und klammern beherrscht.