Mehrere Threads mit notifyAll ()

8

Ich schreibe ein Java-Programm, das die verstrichenen Sekunden ausgibt, und jede fünfte Sekunde wird eine Nachricht gedruckt. Dies ist eine Beispielausgabe:

%Vor%

Wie kann ich die boolesche Variable printMsg entfernen? Gibt es ein besseres Thread-Design, das dies erlaubt?

Für jetzt, ohne printMsg wird das Programm mehrere "Hallo" während der 1/10 Sekunde Programm bei 5, 10, 15 usw. drucken.

%Vor%     
Dzung Nguyen 18.12.2015, 06:39
quelle

2 Antworten

0

Sie müssen das Flag printMsg nicht verwenden, nur notifyAll wenn count % N == 0

%Vor%     
Jerry06 18.12.2015, 07:19
quelle
0

Eine Möglichkeit zur Vereinfachung und besseren Gestaltung besteht darin, einen einzelnen Thread anstelle von zwei Threads zu verwenden. Und lassen Sie den einzelnen Thread kümmern Sekunden Sekunden sowie Nachricht drucken. Auf diese Weise reduzieren Sie einen Thread und müssen nicht warten () und benachrichtigen. Gibt es einen Grund, warum Sie zwei Threads verwenden möchten? Code unten:

%Vor%     
quelle

Tags und Links