From 6e7be1833292d3c31bca4a9c4fb88f52b097908c Mon Sep 17 00:00:00 2001 From: stedS <sven.steddin@reutlingen-university.de> Date: Thu, 23 Jan 2020 01:28:05 +0100 Subject: [PATCH] Erweiterung Beispielprojekte --- VL04_09/ThreadsMonitor1/.classpath | 6 +++++ VL04_09/ThreadsMonitor1/.project | 17 +++++++++++++ .../.settings/org.eclipse.jdt.core.prefs | 11 +++++++++ VL04_09/ThreadsMonitor1/src/inf3/Ausgabe.java | 17 +++++++++++++ .../src/inf3/Thread_TextAusgabe.java | 14 +++++++++++ .../src/inf3/ThreadsMonitor1.java | 24 +++++++++++++++++++ 6 files changed, 89 insertions(+) create mode 100644 VL04_09/ThreadsMonitor1/.classpath create mode 100644 VL04_09/ThreadsMonitor1/.project create mode 100644 VL04_09/ThreadsMonitor1/.settings/org.eclipse.jdt.core.prefs create mode 100644 VL04_09/ThreadsMonitor1/src/inf3/Ausgabe.java create mode 100644 VL04_09/ThreadsMonitor1/src/inf3/Thread_TextAusgabe.java create mode 100644 VL04_09/ThreadsMonitor1/src/inf3/ThreadsMonitor1.java diff --git a/VL04_09/ThreadsMonitor1/.classpath b/VL04_09/ThreadsMonitor1/.classpath new file mode 100644 index 0000000..63b7e89 --- /dev/null +++ b/VL04_09/ThreadsMonitor1/.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/ThreadsMonitor1/.project b/VL04_09/ThreadsMonitor1/.project new file mode 100644 index 0000000..f23ffe7 --- /dev/null +++ b/VL04_09/ThreadsMonitor1/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>ThreadsMonitor1</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/ThreadsMonitor1/.settings/org.eclipse.jdt.core.prefs b/VL04_09/ThreadsMonitor1/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..bb35fa0 --- /dev/null +++ b/VL04_09/ThreadsMonitor1/.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/ThreadsMonitor1/src/inf3/Ausgabe.java b/VL04_09/ThreadsMonitor1/src/inf3/Ausgabe.java new file mode 100644 index 0000000..b691a5f --- /dev/null +++ b/VL04_09/ThreadsMonitor1/src/inf3/Ausgabe.java @@ -0,0 +1,17 @@ +package inf3; +public class Ausgabe { + + //synchronized static 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(); + } +} + diff --git a/VL04_09/ThreadsMonitor1/src/inf3/Thread_TextAusgabe.java b/VL04_09/ThreadsMonitor1/src/inf3/Thread_TextAusgabe.java new file mode 100644 index 0000000..a234412 --- /dev/null +++ b/VL04_09/ThreadsMonitor1/src/inf3/Thread_TextAusgabe.java @@ -0,0 +1,14 @@ +package inf3; +public class Thread_TextAusgabe extends Thread { + char c; + Thread_TextAusgabe (char c) { + this.c = c; + } + + public void run() { + for (int ii=0; ii< 5; ii++) { + Ausgabe.SchreibeZeile(c); + } + } +} + diff --git a/VL04_09/ThreadsMonitor1/src/inf3/ThreadsMonitor1.java b/VL04_09/ThreadsMonitor1/src/inf3/ThreadsMonitor1.java new file mode 100644 index 0000000..bda5cd5 --- /dev/null +++ b/VL04_09/ThreadsMonitor1/src/inf3/ThreadsMonitor1.java @@ -0,0 +1,24 @@ +/** 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 + * Unterbrechungen gesperrt wird, indem sie mit synchronized er- + * weitert wird, erhält man die gewünschte gleichmäßige Ausgabe + * der Zahlenwerte. + * + * @author stedS + * @version 1.0 (2016-01-12) + */ +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'); + th1.start(); + th2.start(); + } +} + + -- GitLab