Für unsere Aufgabe für die Klasse starten, müssen wir die Menge der Wörter in einer txt-Datei, indem er Segmente in n Aufspaltung zählen, die wir das Programm vor dem Start einstellen sollen in der Lage sein. Jedes Segment sollte dann einen eigenen Thread bekommen, der die Wörter zählt und dann stoppt. Am Ende sollte der Haupt-Thread alle einzelnen Wortzählungen sammeln und sie zusammenfügen.mehrere Threads gleichzeitig
Dies ist (Teil), was ich bisher
for (int i = 0; i < segments; i++){
Thread thread = new Thread();
thread.start();
int words = counting(stringarray[i]);
totalwords += words;
long nanos = ManagementFactory.getThreadMXBean().getThreadCpuTime(Thread.currentThread().getId());
System.out.println("This Thread read " + words + " words. The total word count now is " + totalwords +
". The time it took to finish for this thread is " + nanos +".");
System.out.println("Number of active threads from the given thread: " + Thread.activeCount());
}
Jetzt schrieb, während dies getan, um die primäre Aufgabe bekommt (die Wörter in verschiedenen Threads zu zählen und sie auf die Gesamt Zugabe), ich weiß nicht, wie um einfach "den Thread verlassen zu lassen" und dann die einzelnen Wordcounts zu addieren, nachdem jeder Thread seine Aufgabe erledigt hat.
Zusätzlich kann, während dies auf jeden Fall mehrere Threads starten wird, druckt es immer nur, dass ich 2 oder vielleicht 3 Fäden zu einem Zeitpunkt ausgeführt wird, auch wenn ich die txt in 100 Segmente aufgeteilt. Gibt es eine Möglichkeit, sie alle gleichzeitig laufen zu lassen?
Ihre Threads tun nichts. Wahrscheinlich möchten Sie [hier] (https://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html) starten. – shmosel
'Thread thread = neuer Thread(); thread.start(); 'tut eigentlich nichts - der von Ihnen erstellte Thread hat kein lauffähiges Ziel. – Mshnik
Wusste es könnte nicht so einfach sein. Ich werde es lesen, wenn es nicht 4 Uhr morgens ist. –