From 67c12cc1e7f7347dcbf5fd8fea587273d649c012 Mon Sep 17 00:00:00 2001
From: stedS <sven.steddin@reutlingen-university.de>
Date: Thu, 23 Jan 2020 00:12:15 +0100
Subject: [PATCH] Erweiterung Beispiele

---
 .../src/MyThreads/MyInputClass.java           | 21 +++++++++++++
 .../src/MyThreads/MyOutputClass.java          | 30 +++++++++++++++++++
 .../src/MyThreads/MyOutputClassChild.java     | 17 +++++++++++
 .../ThreadDurchInterface_3mitSleep.java       | 23 ++++++++++++++
 4 files changed, 91 insertions(+)
 create mode 100644 VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyInputClass.java
 create mode 100644 VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyOutputClass.java
 create mode 100644 VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyOutputClassChild.java
 create mode 100644 VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/ThreadDurchInterface_3mitSleep.java

diff --git a/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyInputClass.java b/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyInputClass.java
new file mode 100644
index 0000000..9fb4199
--- /dev/null
+++ b/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyInputClass.java
@@ -0,0 +1,21 @@
+package MyThreads;
+import java.util.Scanner;
+
+public class MyInputClass extends Thread {
+
+	public void run() {
+		Scanner myScanner = new Scanner(System.in);
+		int ii = 0;
+		while (true) {
+			try {
+				sleep(200);
+			} catch (InterruptedException e) {
+				e.printStackTrace();
+			}
+			ii = myScanner.nextInt();
+			System.out.println("\nEingabe: " + ii);	
+		}
+	}
+}
+
+
diff --git a/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyOutputClass.java b/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyOutputClass.java
new file mode 100644
index 0000000..da1351c
--- /dev/null
+++ b/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyOutputClass.java
@@ -0,0 +1,30 @@
+package MyThreads;
+
+public abstract class MyOutputClass {
+	private String text;
+	int cnt = 0;
+	
+	MyOutputClass(String text)
+	{
+		this.text = text;
+	}
+	
+	protected abstract void MachWas();
+	
+	public void run() {
+		long kk = 0;
+		while (true) {
+				cnt++;
+				System.out.print(text + " ");
+				MachWas();
+				try {
+					Thread.sleep(1000);
+				} catch (InterruptedException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+		}		
+	}
+}
+
+
diff --git a/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyOutputClassChild.java b/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyOutputClassChild.java
new file mode 100644
index 0000000..e214ff1
--- /dev/null
+++ b/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/MyOutputClassChild.java
@@ -0,0 +1,17 @@
+package MyThreads;
+public class MyOutputClassChild extends MyOutputClass implements Runnable {
+	
+	private int crlfCnt = 0;
+	
+	public MyOutputClassChild(String text, int cnt) {
+		super(text);
+		crlfCnt = cnt;
+	}
+	
+	protected void MachWas() {
+		if (crlfCnt != 0) {
+			if (cnt % crlfCnt == 0) {
+				System.out.println("CRLF");
+}}}}
+
+
diff --git a/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/ThreadDurchInterface_3mitSleep.java b/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/ThreadDurchInterface_3mitSleep.java
new file mode 100644
index 0000000..202ac43
--- /dev/null
+++ b/VL04_09/ThreadDurchInterface_3mitSleep/src/MyThreads/ThreadDurchInterface_3mitSleep.java
@@ -0,0 +1,23 @@
+package MyThreads;
+public class ThreadDurchInterface_3mitSleep {
+
+	public static void main(String[] args) {
+
+		//zuerst die Objekte anlegen, die von Thread nicht erben können
+		//aber dafür das Interface Runnable unterstützen: 
+		MyOutputClassChild myRunnable1 = new MyOutputClassChild("Hallo",4);
+		MyOutputClassChild myRunnable2 = new MyOutputClassChild("Meti",0);		
+		
+		//nun alle gewünschten Threads anlegen:
+		MyInputClass myThread1 	= new MyInputClass();
+		Thread myThread2 		= new Thread(myRunnable1);
+		Thread myThread3 		= new Thread(myRunnable2);
+				
+		//Thread-Objekte starten
+		myThread1.start();
+		myThread2.start();
+		myThread3.start();
+	}
+}
+
+
-- 
GitLab