summaryrefslogtreecommitdiff
path: root/ws2015/oss/blaetter/12/Prozess.java
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2016-01-25 11:43:50 +0000
committerGregor Kleen <gkleen@yggdrasil.li>2016-01-25 11:43:50 +0000
commit13abb5f313ffb28fce7e4a9a31124d29967bec10 (patch)
tree2e3a47651ddb41f9164811e285e97e8a33d9745d /ws2015/oss/blaetter/12/Prozess.java
parent8ebbc9b41ab2e94f1a037b59dd9313e01afcc212 (diff)
downloaduni-13abb5f313ffb28fce7e4a9a31124d29967bec10.tar
uni-13abb5f313ffb28fce7e4a9a31124d29967bec10.tar.gz
uni-13abb5f313ffb28fce7e4a9a31124d29967bec10.tar.bz2
uni-13abb5f313ffb28fce7e4a9a31124d29967bec10.tar.xz
uni-13abb5f313ffb28fce7e4a9a31124d29967bec10.zip
OSS 12
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}