Hi,
ich wollte mal das Thema Threads aufgreifen um dessen Sinn zu verstehen welcher nicht schlecht ist.
Hat seinen nutzen aber ich sehe ehrlich gesagt keinen Unterschied daher frage ich mich Ob ich es richtig umsetze.
Ich gehe gerade ein Tutorial durch und habe den Begriff synchronized gesehen. Diesen fand ich gut und wollte ihn auch sofort einbauen in das Testprogramm. Aber wie oben erwähnt sehe ich keinen Unterschied.
Hier das Script
Die Klasse HelloLoop
Ich habe
Wie dem auch sei, wenn ich das synchronized weg mache sehe ich keinen Unterschied bei der Ausgabe.
Der Code wäre doch so Threadsave oder etwa nicht?
ich wollte mal das Thema Threads aufgreifen um dessen Sinn zu verstehen welcher nicht schlecht ist.
Hat seinen nutzen aber ich sehe ehrlich gesagt keinen Unterschied daher frage ich mich Ob ich es richtig umsetze.
Ich gehe gerade ein Tutorial durch und habe den Begriff synchronized gesehen. Diesen fand ich gut und wollte ihn auch sofort einbauen in das Testprogramm. Aber wie oben erwähnt sehe ich keinen Unterschied.
Hier das Script
Java:
public class HelloThreads {
public static void main (String[] args) {
HelloLoop engl = new HelloLoop();
HelloLoop germ = new HelloLoop();
germ.setMessageText("Hallo, liebe Leute!");
HelloLoop cat = new HelloLoop();
cat.setMessageText("Miau!");
Thread te = new Thread (engl);
Thread tg = new Thread (germ);
Thread tc = new Thread (cat);
te.start();
tg.start();
tc.start();
}
}
Die Klasse HelloLoop
Java:
public class HelloLoop implements Runnable {
private String messageText = "Hello World!";
public synchronized void setMessageText(String newText) {
messageText = newText;
}
public String getMessageText() {
return messageText;
}
public void printText() {
System.out.println (messageText);
}
public void run() {
for (int i=1; i<=5; i=i+1) {
printText();
try { Thread.sleep(50); }
catch (InterruptedException e) {}
}
}
}
Ich habe
synchronized gesetzt da ja 3 Prozesse gleichzeitig laufen und auf die MethodesetMessageText
zugreifen. Das ist doch richtig oder habe ich es doch an die Falsche Stelle gesetzt wenn ja bitte ich um Aufklärung.setMessageText
Wie dem auch sei, wenn ich das synchronized weg mache sehe ich keinen Unterschied bei der Ausgabe.
Der Code wäre doch so Threadsave oder etwa nicht?
Zuletzt bearbeitet: