Programowanie współbieżne w języku Java
Programowanie współbieżne w języku Java
Programowanie współbieżne w języku Java
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Wersja 3<br />
package prodcons3;<br />
import java.util.concurrent.ArrayBlockingQueue;<br />
public class ProducerConsumerTest3 {<br />
public static void main(String[] args) {<br />
ArrayBlockingQueue c = new ArrayBlockingQueue(1);<br />
Producer3 p1 = new Producer3(c, 1);<br />
Consumer3 c1 = new Consumer3(c, 1);<br />
p1.start();<br />
c1.start();<br />
}<br />
}<br />
======================================================<br />
package prodcons3;<br />
import java.util.concurrent.BlockingQueue;<br />
public class Producer3 extends Thread {<br />
private BlockingQueue cubbyhole;<br />
private int number;<br />
public Producer3(BlockingQueue c, int num) {<br />
cubbyhole = c;<br />
number = num;<br />
}<br />
public void run() {<br />
for (int i = 0; i < 10; i++) {<br />
try {<br />
cubbyhole.put(i);<br />
System.out.format("Producer #%d put: %d%n", number, i);<br />
sleep((int)(Math.random() * 500));<br />
} catch (InterruptedException e) { }<br />
}<br />
}<br />
}<br />
===========================================================<br />
package prodcons3;<br />
import java.util.concurrent.BlockingQueue;<br />
public class Consumer3 extends Thread {<br />
private BlockingQueue cubbyhole;<br />
private int number;<br />
public Consumer3(BlockingQueue c, int num) {<br />
cubbyhole = c;<br />
number = num;<br />
}<br />
}<br />
public void run() {<br />
int value = 0;<br />
for (int i = 0; i < 10; i++) {<br />
try {<br />
value = cubbyhole.take();<br />
System.out.format("Consumer #%d got: %d%n", number, value);<br />
} catch (InterruptedException e) { }<br />
}<br />
}<br />
Lab. „<strong>Programowanie</strong> <strong>współbieżne</strong> w <strong>języku</strong> <strong>Java</strong>”<br />
12