summaryrefslogtreecommitdiff
path: root/ws2015/oss/blaetter/12/Prozess.java
diff options
context:
space:
mode:
Diffstat (limited to 'ws2015/oss/blaetter/12/Prozess.java')
-rw-r--r--ws2015/oss/blaetter/12/Prozess.java31
1 files changed, 31 insertions, 0 deletions
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 @@
1public class Prozess extends Thread {
2 private Speicher my_speicher;
3 private int prozess_id;
4
5 public Prozess(int prozess_id, Speicher my_speicher) {
6 this.prozess_id = prozess_id;
7 this.my_speicher = my_speicher;
8 }
9
10 public void run() {
11 System.out.println("prozess " + prozess_id + " is now running");
12 while (true) {
13 if (Math.random() >= 0.5) {
14 // Hole Leserecht
15 my_speicher.leserecht_holen(prozess_id);
16 // lese
17 System.out.println("Prozess " + prozess_id + " hat gelesen: "
18 + my_speicher.lese());
19 // Leserecht freigeben
20 my_speicher.leserecht_freigeben(prozess_id);
21 } else {
22 // Arbeite als Schreiber
23 my_speicher.schreibrecht_holen(prozess_id);
24 // schreibe
25 my_speicher.schreibe(Integer.toString(prozess_id));
26 // schreiben
27 my_speicher.schreibrecht_freigeben(prozess_id);
28 }
29 }
30 }
31}