From 13abb5f313ffb28fce7e4a9a31124d29967bec10 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Mon, 25 Jan 2016 11:43:50 +0000 Subject: OSS 12 --- ws2015/oss/blaetter/12/Prozess.java | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 ws2015/oss/blaetter/12/Prozess.java (limited to 'ws2015/oss/blaetter/12/Prozess.java') diff --git a/ws2015/oss/blaetter/12/Prozess.java b/ws2015/oss/blaetter/12/Prozess.java new file mode 100644 index 0000000..ae20a6c --- /dev/null +++ b/ws2015/oss/blaetter/12/Prozess.java @@ -0,0 +1,31 @@ +public class Prozess extends Thread { + private Speicher my_speicher; + private int prozess_id; + + public Prozess(int prozess_id, Speicher my_speicher) { + this.prozess_id = prozess_id; + this.my_speicher = my_speicher; + } + + public void run() { + System.out.println("prozess " + prozess_id + " is now running"); + while (true) { + if (Math.random() >= 0.5) { + // Hole Leserecht + my_speicher.leserecht_holen(prozess_id); + // lese + System.out.println("Prozess " + prozess_id + " hat gelesen: " + + my_speicher.lese()); + // Leserecht freigeben + my_speicher.leserecht_freigeben(prozess_id); + } else { + // Arbeite als Schreiber + my_speicher.schreibrecht_holen(prozess_id); + // schreibe + my_speicher.schreibe(Integer.toString(prozess_id)); + // schreiben + my_speicher.schreibrecht_freigeben(prozess_id); + } + } + } +} -- cgit v1.2.3