diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2016-03-06 20:22:56 +0100 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2016-03-06 20:22:56 +0100 |
commit | cbd2e7e002d7293fda84f15e487ff299e60fe2f6 (patch) | |
tree | 8ae67304555253a94e28348b155097b8b7deb05f /ws2015/oss/blaetter/12/Prozess.java | |
parent | bc715c300fe70c39e4b598c908070475626e24fe (diff) | |
parent | 13abb5f313ffb28fce7e4a9a31124d29967bec10 (diff) | |
download | uni-cbd2e7e002d7293fda84f15e487ff299e60fe2f6.tar uni-cbd2e7e002d7293fda84f15e487ff299e60fe2f6.tar.gz uni-cbd2e7e002d7293fda84f15e487ff299e60fe2f6.tar.bz2 uni-cbd2e7e002d7293fda84f15e487ff299e60fe2f6.tar.xz uni-cbd2e7e002d7293fda84f15e487ff299e60fe2f6.zip |
Merge branch 'master' of ymir.yggdrasil.li:gkleen/pub/uni
Diffstat (limited to 'ws2015/oss/blaetter/12/Prozess.java')
-rw-r--r-- | ws2015/oss/blaetter/12/Prozess.java | 31 |
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 @@ | |||
1 | public 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 | } | ||