diff --git a/VL04_09/ThreadsMonitor1/.gitignore b/VL04_09/ThreadsMonitor1/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..ae3c1726048cd06b9a143e0376ed46dd9b9a8d53
--- /dev/null
+++ b/VL04_09/ThreadsMonitor1/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/VL04_09/ThreadsMonitor1/src/inf3/Thread_TextAusgabe.java b/VL04_09/ThreadsMonitor1/src/inf3/Thread_TextAusgabe.java
index a23441237881957513786befc735b187d7b29c50..c10a1fe541912574fa4512f0dafa76f89df71711 100644
--- a/VL04_09/ThreadsMonitor1/src/inf3/Thread_TextAusgabe.java
+++ b/VL04_09/ThreadsMonitor1/src/inf3/Thread_TextAusgabe.java
@@ -5,9 +5,23 @@ public class Thread_TextAusgabe extends Thread {
 		this.c = c;
 	}
 	
+	static synchronized void SchreibeZeile (char c) {
+	//static void SchreibeZeile (char c) {
+		for (int ii=0; ii< 20; ii++) {
+			System.out.print(c + " ");
+			
+			//Warteschleife:
+			for (int ll=0; ll< 1000000; ll++) {
+				Double kk = Math.sqrt(ll);
+			}
+		}
+		System.out.println();
+	}
+	
 	public void run() {
 		for (int ii=0; ii< 5; ii++) {
-			Ausgabe.SchreibeZeile(c);
+			SchreibeZeile(c);
+			//Thread.yield();
 		}
 	}
 }
diff --git a/VL04_09/ThreadsMonitor1/src/inf3/ThreadsMonitor1.java b/VL04_09/ThreadsMonitor1/src/inf3/ThreadsMonitor1.java
index bda5cd56e9dd52d8a64e6930f9ec557a0b3463df..222fdc9b39131850dde8ab25ef355f699b9ffb12 100644
--- a/VL04_09/ThreadsMonitor1/src/inf3/ThreadsMonitor1.java
+++ b/VL04_09/ThreadsMonitor1/src/inf3/ThreadsMonitor1.java
@@ -1,18 +1,34 @@
 /** Programm zur Demonstration der Threadsynchronisation
  * durch den Einsatz eines Monitors: Zwei Threads sollen 
  * jeweils 10 mal die im Konstruktor übergebene Ziffer in eine
- * Zeile schreiben.  Erst wenn die Methode SchreibeZeile() gegen 
+ * Zeile schreiben. Erst wenn die Methode SchreibeZeile() gegen 
  * Unterbrechungen gesperrt wird, indem sie mit synchronized er-
  * weitert wird, erhält man die gewünschte gleichmäßige Ausgabe 
  * der Zahlenwerte.
  * 
+ * Um sicherzustellen, dass die Ausgabe-Threads auf ein gemeinsames
+ * Sperrobjekt zugreifen, muss die Methode SchreibeZeile() als static
+ * deklariert werden. Der Lock steht dann der Klasse Textausgabe nur 
+ * einmal gemeinsam zur Verfügung und wird nicht für jedes instanzierte
+ * Objekt separat angelegt (in diesem Fall verfehlt er die gewünschte
+ * Wirkung.
+ * 
+ * Die Thread-Methode yield() erweist sich als für die Aufgabe untauglich.
+ * Es ist weder sichergestellt, dass der thread beim Aufruf von yield()
+ * tatsächlich den running state verlässt, noch, dass ein thread unmittelbar
+ * nach Verlassen des running Zustandes nicht sofort wieder vom OS
+ * aktiviert wird.
+ * 
+ * Die vorgestellte Lösung stellt nun zwar sicher, dass die Ausgabe einer 
+ * Textzeile nicht unterbrochen wird, sie bewirkt jedoch nicht die 
+ * wechselweise Ausgabe der Textzeilen der einzelnen Threads.
+ * 
  * @author stedS
- * @version 1.0 (2016-01-12) 
+ * @version 2.0 (2021-01-25) 
  */
 package inf3;
 public class ThreadsMonitor1 {
 	char c;
-	
 	public static void main(String[] args) {
 		Thread_TextAusgabe th1 = new Thread_TextAusgabe('1');
 		Thread_TextAusgabe th2 = new Thread_TextAusgabe('2');