angelikamorgan
Mitglied
Hallo,
ich habe ein Problem mit parallel laufenden Threads.
Mein Vorhaben:
Per Eingabe soll der Befehl 'start' und 'stop' entgegen genommen werden.
Wenn start eingegeben wird, soll jede Sekunde die Meldung ''hello" ausgegeben werden. Bei Stop soll die Ausgabe angehalten werden.
Zusätzlich soll die gesamte Anwendung in einem Thread laufen und nicht beendet werden.
Daher habe ich versucht, mein Vorhaben anhand von drei Threads zu realisieren.
Würde mich freuen, wenn mir jemand weiter helfen könnte.
Gruß
Angelika
ich habe ein Problem mit parallel laufenden Threads.
Mein Vorhaben:
Per Eingabe soll der Befehl 'start' und 'stop' entgegen genommen werden.
Wenn start eingegeben wird, soll jede Sekunde die Meldung ''hello" ausgegeben werden. Bei Stop soll die Ausgabe angehalten werden.
Zusätzlich soll die gesamte Anwendung in einem Thread laufen und nicht beendet werden.
Daher habe ich versucht, mein Vorhaben anhand von drei Threads zu realisieren.
Würde mich freuen, wenn mir jemand weiter helfen könnte.
Gruß
Angelika
PHP:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ThreadTest implements Runnable {
static boolean isRunning = true;
public void run() {
while (true) {
}
}
public synchronized static void sayHello() {
System.out.println("------------ sayHello()");
while (isRunning) {
System.out.println("hello");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
}
}
}
public static void main(String args[]) {
Thread inputThread = new Thread() {
public void run() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while(true) {
System.out.println("input");
if ("stop".equals(reader.readLine())) {
// Wenn 'start' eingegeben wird, soll sayHello gerstartet werden.
// Bei Eingabe von 'stop' soll die Methode angehalten werden.
System.out.println("------------ stop");
isRunning = false;
}
if("start".equals(reader.readLine())) {
System.out.println("------------ start");
isRunning = true;
sayHello();
}
}
} catch (IOException ex) {}
}
};
final ThreadTest test = new ThreadTest();
Thread thread = new Thread(test);
thread.start();
System.out.println("------------ run()");
inputThread.start();
System.out.println("------------ inputThread");
Thread sayHelloThread = new Thread() {
public void run() {
test.sayHello();
}
};
sayHelloThread.start();
System.out.println("------------ sayHelloThread");
}
}
Zuletzt bearbeitet: