Class SynchronizedBuffer
Class SynchronizedBuffer
(Fig. 23.20) contains five fields. Line 11 creates a new object of type ReentrantLock
and assigns its reference to Lock
variable accessLock
. The ReentrantLock
is created without the fairness policy because at any time only a single Producer
or Consumer
will be waiting to acquire the Lock
in this example. Lines 14–15 create two Condition
s using Lock
method newCondition
. Condition canWrite
contains a queue for a Producer
thread waiting while the buffer is full (i.e., there’s data in the buffer that the Consumer
has not read yet). If the buffer is full, the Producer
calls method await
on this Condition
. When the Consumer
reads data from a full buffer, it calls method signal
on this Condition
. ...
Get Java™ How To Program (Early Objects), Tenth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.