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