-
Notifications
You must be signed in to change notification settings - Fork 0
/
Buyer.java
41 lines (37 loc) · 1.26 KB
/
Buyer.java
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
32
33
34
35
36
37
38
39
40
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Buyer<V> extends BuyerBase<V> {
//int catalogSize;
public Buyer (int sleepTime, int catalogSize, Lock lock, Condition full, Condition empty, PriorityQueue<V> catalog, int iteration) {
// Complete the Buyer Constructor method
super.catalog = catalog;
super.full = full;
super.empty = empty;
//this.catalogSize = catalogSize;
super.setSleepTime(sleepTime) ;
super.setIteration(iteration);
super.lock = lock;
}
public void buy() throws InterruptedException
{
lock.lock();
try
{
// Complete the try block for consume method
// ...
while(catalog.isEmpty())
empty.await();
NodeBase<V> n = catalog.dequeue();
System.out.print("Consumed "); // DO NOT REMOVE (For Automated Testing)
n.show(); // DO NOT REMOVE (For Automated Testing)
// ...
full.signalAll();
} catch (Exception e) {
e.printStackTrace();
} finally {
// Complete this block
lock.unlock();
}
}
}