blob: ae20a6c464b9452a2631db512c1addff578401c0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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);
}
}
}
}
|