4 * implementation du producteur consommateur avec un buffer circulaire
6 public class BufferCirc
{
8 private Object
[] tampon
;
10 private int prem
, der
, nbObj
;
13 public BufferCirc (int t
) {
15 tampon
= new Object
[taille
];
22 public boolean isEmpty() {
27 public boolean isFull() {
28 return nbObj
== taille
;
32 public synchronized void depose(Object obj
) {
35 System
.out
.println("Buffer is full: " + Thread
.currentThread().getName()
36 + " is waiting, size: " + nbObj
);
39 catch (InterruptedException e
) {}
43 prem
= (prem
+ 1) % taille
;
44 //System.out.println(Thread.currentThread().getName() + " a depose " + (Integer)obj);
49 public synchronized Object
preleve() {
52 System
.out
.println("Buffer is empty: " + Thread
.currentThread().getName()
53 + " is waiting, size: " + nbObj
);
56 catch (InterruptedException e
) {}
61 der
= (der
+ 1) % taille
;
62 //System.out.println(Thread.currentThread().getName() + " a preleve " + (Integer)outObj);
67 } // fin class BufferCirc