From 70b1e4073992a4dfa3a45f9857a3ece3eee988bf Mon Sep 17 00:00:00 2001
From: stedS <sven.steddin@reutlingen-university.de>
Date: Thu, 23 Jan 2020 00:40:33 +0100
Subject: [PATCH] Erweiterung Beispielprojekte

---
 VL04_09/ThreadTestInterrupt/.classpath        |  6 +++
 VL04_09/ThreadTestInterrupt/.project          | 17 ++++++++
 .../.settings/org.eclipse.jdt.core.prefs      | 11 +++++
 .../src/inf3/BabyThread.java                  | 22 ++++++++++
 .../src/inf3/ThreadTestInterrupt.java         | 38 ++++++++++++++++
 .../src/inf3/WeckerThread.java                | 43 +++++++++++++++++++
 6 files changed, 137 insertions(+)
 create mode 100644 VL04_09/ThreadTestInterrupt/.classpath
 create mode 100644 VL04_09/ThreadTestInterrupt/.project
 create mode 100644 VL04_09/ThreadTestInterrupt/.settings/org.eclipse.jdt.core.prefs
 create mode 100644 VL04_09/ThreadTestInterrupt/src/inf3/BabyThread.java
 create mode 100644 VL04_09/ThreadTestInterrupt/src/inf3/ThreadTestInterrupt.java
 create mode 100644 VL04_09/ThreadTestInterrupt/src/inf3/WeckerThread.java

diff --git a/VL04_09/ThreadTestInterrupt/.classpath b/VL04_09/ThreadTestInterrupt/.classpath
new file mode 100644
index 0000000..63b7e89
--- /dev/null
+++ b/VL04_09/ThreadTestInterrupt/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/VL04_09/ThreadTestInterrupt/.project b/VL04_09/ThreadTestInterrupt/.project
new file mode 100644
index 0000000..4e6b44e
--- /dev/null
+++ b/VL04_09/ThreadTestInterrupt/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ThreadTestInterrupt</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/VL04_09/ThreadTestInterrupt/.settings/org.eclipse.jdt.core.prefs b/VL04_09/ThreadTestInterrupt/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..bb35fa0
--- /dev/null
+++ b/VL04_09/ThreadTestInterrupt/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/VL04_09/ThreadTestInterrupt/src/inf3/BabyThread.java b/VL04_09/ThreadTestInterrupt/src/inf3/BabyThread.java
new file mode 100644
index 0000000..fde9809
--- /dev/null
+++ b/VL04_09/ThreadTestInterrupt/src/inf3/BabyThread.java
@@ -0,0 +1,22 @@
+package inf3;
+
+public class BabyThread extends Thread {
+	private int sleepDuration;
+
+	BabyThread(int sleepDuration, String babyName) {
+		super();
+		this.sleepDuration = sleepDuration;
+		this.setName(babyName);
+	}
+	
+	public void run() {
+		System.out.println(this.getName() + " schlafen gelegt");
+		try {
+			Thread.sleep(sleepDuration);
+			System.out.println("\n" + this.getName() + " ausgeschlafen");
+		}
+		catch (InterruptedException e) {
+			System.out.println("\n" + this.getName() + " aufgeweckt und sauer");
+		}
+	}
+}
diff --git a/VL04_09/ThreadTestInterrupt/src/inf3/ThreadTestInterrupt.java b/VL04_09/ThreadTestInterrupt/src/inf3/ThreadTestInterrupt.java
new file mode 100644
index 0000000..c9d1d06
--- /dev/null
+++ b/VL04_09/ThreadTestInterrupt/src/inf3/ThreadTestInterrupt.java
@@ -0,0 +1,38 @@
+/** ThreadTestInterrupt.java
+*
+* @author Steddin
+* @version 1.00, 2017-01-19
+*/
+package inf3;
+public class ThreadTestInterrupt {
+
+	public static void main(String[] args) {
+				
+		BabyThread[] baby =  new BabyThread[4];
+		baby[0] = new BabyThread(8000,"Hans");
+		baby[1] = new BabyThread(5000,"Ludwig");
+		baby[2] = new BabyThread(5000,"Klara");
+		baby[3] = new BabyThread(2000,"Erna");		
+
+		for (BabyThread aa: baby) {
+			aa.start();
+		}
+		
+		WeckerThread wecker = new WeckerThread(baby);
+		wecker.setDaemon(true);
+		wecker.start();
+		
+		
+		for (BabyThread aa: baby) {
+			try {  
+				while (aa.isAlive()) {
+					System.out.print ("... es schläft noch jemand ");					
+					aa.join(1000);
+				}
+			} catch (InterruptedException e) { 
+			}				
+		}
+		System.out.println ("Alle Babys wach :)");
+	}
+}
+
diff --git a/VL04_09/ThreadTestInterrupt/src/inf3/WeckerThread.java b/VL04_09/ThreadTestInterrupt/src/inf3/WeckerThread.java
new file mode 100644
index 0000000..9ce5583
--- /dev/null
+++ b/VL04_09/ThreadTestInterrupt/src/inf3/WeckerThread.java
@@ -0,0 +1,43 @@
+package inf3;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+   
+public class WeckerThread extends Thread {
+
+	BabyThread[] babys;
+	InputStreamReader isr;
+	
+	WeckerThread (BabyThread[] babys) {
+		super();
+		this.babys = babys;	
+		isr = new InputStreamReader(System.in); 
+	}
+	
+	public void run() {
+		try {
+			while (!isr.ready()) {
+				try {
+					System.out.print(" TickTack ");				
+					Thread.sleep(200);
+				} catch (InterruptedException e) {
+					System.out.println("Deamon abgebrochen");
+				}
+			}
+			System.out.println("Wecker aktiviert");
+			for (BabyThread aa: babys) {
+				if (aa.isAlive()) {
+					aa.interrupt();
+				}
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+}
+
+
+
+
+
+
-- 
GitLab