Programowanie współbieżne w języku Java
Programowanie współbieżne w języku Java
Programowanie współbieżne w języku Java
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Wersja 4<br />
package prodcons04;<br />
public class ProducerConsumerTest4 {<br />
public static void main(String[] args) {<br />
SemaphoreBoundedBuffer c = new SemaphoreBoundedBuffer(1);<br />
Producer4 p1 = new Producer4(c, 1);<br />
Consumer4 c1 = new Consumer4(c, 1);<br />
p1.start();<br />
c1.start();<br />
}<br />
}<br />
==============================================================<br />
package prodcons04;<br />
public class Producer4 extends Thread {<br />
private SemaphoreBoundedBuffer cubbyhole;<br />
private int number;<br />
public Producer4(SemaphoreBoundedBuffer c, int number) {<br />
cubbyhole = c;<br />
this.number = number;<br />
}<br />
@Override<br />
public void run() {<br />
for (int i = 0; i < 10; i++) {<br />
try {<br />
cubbyhole.put(number, i);<br />
sleep((int)(Math.random() * 500));<br />
} catch (InterruptedException e) {<br />
System.err.println(e.getMessage());<br />
}<br />
}<br />
}<br />
}<br />
================================================================<br />
package prodcons04;<br />
public class Consumer4 extends Thread {<br />
private SemaphoreBoundedBuffer cubbyhole;<br />
private int number;<br />
public Consumer4(SemaphoreBoundedBuffer c, int number) {<br />
cubbyhole = c;<br />
this.number = number;<br />
}<br />
@Override<br />
public void run() {<br />
int value = 0;<br />
for (int i = 0; i < 10; i++) {<br />
try {<br />
value = (Integer)(cubbyhole.take(number));<br />
sleep((int)(Math.random() * 1000));<br />
} catch (InterruptedException e) {<br />
System.err.println(e.getMessage());<br />
}<br />
}<br />
}<br />
}<br />
==================================================================<br />
Lab. „<strong>Programowanie</strong> <strong>współbieżne</strong> w <strong>języku</strong> <strong>Java</strong>”<br />
13