Java Reference
In-Depth Information
Consumer reads 3 3
Producer writes 4 10
Consumer reads 4 7
Producer writes 5 15
5 is lost
6 is lost
Producer writes 6 21
Producer writes 7 28
Consumer reads 7 14
Consumer reads 7 21
7 read again
Producer writes 8 36
Consumer reads 8 29
Consumer reads 8 37
8 read again
Producer writes 9 45
9 is lost
Producer writes 10 55
Producer done producing
Terminating Producer
Consumer reads 10 47
Consumer reads 10 57
Consumer reads 10 67
Consumer reads 10 77
10 read again
10 read again
10 read again
Consumer read values totaling 77
Terminating Consumer
Action Value Sum of Produced Sum of Consumed
------ ----- --------------- ---------------
reads -1 bad data
Consumer reads -1 -1
Producer writes 1 1
Consumer reads 1 0
Consumer reads 1 1
Consumer reads 1 2
Consumer reads 1 3
Consumer reads 1 4
1 read again
1 read again
1 read again
1 read again
Producer writes 2 3
Consumer reads 2 6
Producer writes 3 6
Consumer reads 3 9
Producer writes 4 10
Consumer reads 4 13
Producer writes 5 15
5 is lost
Producer writes 6 21
Consumer reads 6 19
Consumer read values totaling 19
Terminating Consumer
Producer writes 7 28
Producer writes 8 36
Producer writes 9 45
Producer writes 10 55
7 never read
8 never read
9 never read
10 never read
Producer done producing
Terminating Producer
Fig. 23.13 | Application with two threads manipulating an unsynchronized buffer. ( Caution:
The example of Figs. 23.9-23.13 is not thread safe.) (Part 2 of 2.)
 
Search WWH ::




Custom Search