7. hafta
package ureticiTuketici;
public class ureticiTuketici {
public static void main(String[] args) {
kubDelik c = new kubDelik();
uretici p1 = new uretici(c, 1);
tuketici c1 = new tuketici(c, 1);
p1.start();
c1.start();
}
}
===========================================
package ureticiTuketici;
public class uretici extends Thread {
private kubDelik kubDelik;
private int number;
public uretici(kubDelik c, int number) {
kubDelik = c;
this.number = number;
}
public void run() {
for (int i = 0; i < 10; i++) {
kubDelik.put(i);
System.out.println("uretici #" + this.number
+ " put: " + i);
try {
sleep((int)(Math.random() * 100));
} catch (InterruptedException e) { }
}
}
}
===========================================
package ureticiTuketici;
public class tuketici extends Thread {
private kubDelik kubDelik;
private int number;
public tuketici(kubDelik c, int number) {
kubDelik = c;
this.number = number;
}
public void run() {
int value = 0;
for (int i = 0; i < 10; i++) {
value = kubDelik.get();
System.out.println("tuketici #" + this.number
+ " got: " + value);
}
}
}
===========================================
package ureticiTuketici;
public class kubDelik {
private int contents;
private boolean available = false;
public synchronized int get() {
while (available == false) {
try {
wait();
} catch (InterruptedException e) { }
}
available = false;
notifyAll();
return contents;
}
public synchronized void put(int value) {
while (available == true) {
try {
wait();
} catch (InterruptedException e) { }
}
c>
available = true;
notifyAll();
}
}
İletişim
muhammedozturk@sakarya.edu.tr+90 (264) 295 69 09