Assume that a producer and a consumer have access to a shared list of data. The producer’s role is
to replace the data value at each position, whereas the consumer simply accesses the replaced
value—that is, the producer must replace before any consumer accesses. Describe how you would
synchronize the producer and consumer so that they each can process the entire list.