too much milk
play

Too Much Milk Roommate A 3:00 Arrive home: no milk 3:05 Leave - PowerPoint PPT Presentation

Too Much Milk Roommate A 3:00 Arrive home: no milk 3:05 Leave for store 3:10 Arrive at store 3:15 Leave store 3:20 Arrive home, put milk away 3:25 3:30 CS 140 Lecture Notes: Concurrency Slide 1 Too Much Milk Roommate A Roommate B


  1. Too Much Milk Roommate A 3:00 Arrive home: no milk 3:05 Leave for store 3:10 Arrive at store 3:15 Leave store 3:20 Arrive home, put milk away 3:25 3:30 CS 140 Lecture Notes: Concurrency Slide 1

  2. Too Much Milk Roommate A Roommate B 3:00 Arrive home: no milk 3:05 Leave for store 3:10 Arrive at store Arrive home: no milk 3:15 Leave store Leave for store 3:20 Arrive home, put milk away Arrive at store 3:25 Leave store 3:30 Arrive home: too much milk! CS 140 Lecture Notes: Concurrency Slide 2

  3. Computerized Milk Purchase 1 if (milk == 0) { 2 if (note == 0) { 3 note = 1; 4 buy_milk(); 5 note = 0; 6 } 7 } CS 140 Lecture Notes: Concurrency Slide 3

  4. Still Too Much Milk Thread A: Thread B: 1 if (milk == 0) { 2 if (note == 0) { 3 if (milk == 0) { 4 if (note == 0) { 5 note = 1; 6 buy_milk(); 7 note = 0; 8 } } 9 10 note = 1; 11 buy_milk(); 12 note = 0; 13 } 14 } CS 140 Lecture Notes: Concurrency Slide 4

  5. Second Attempt Thread A: Thread B: 1 if (note == 0) { 1 if (note == 1) { 2 if (milk == 0) { 2 if (milk == 0) { 3 buy_milk(); 3 buy_milk(); 4 } 4 } 5 note = 1; 5 note = 0; 6 } 6 } CS 140 Lecture Notes: Concurrency Slide 5

  6. Third Attempt Thread A: Thread B: 1 noteA = 1; 1 noteB = 1; 2 if (noteB == 0) { 2 if (noteA == 0) { 3 if (milk == 0) { 3 if (milk == 0) { 4 buy_milk(); 4 buy_milk(); 5 } 5 } 6 } 6 } 7 noteA = 0; 7 noteB = 0; CS 140 Lecture Notes: Concurrency Slide 6

  7. Fourth Attempt Thread A: Thread B: 1 noteA = 1; 1 noteB = 1; 2 if (noteB == 0) { 2 while (noteA == 1) { 3 if (milk == 0) { 3 // do nothing 4 buy_milk(); 4 } 5 } 5 if (milk == 0) { 6 } 6 buy_milk(); 7 noteA = 0; 7 } 8 noteB = 0; CS 140 Lecture Notes: Concurrency Slide 7

  8. CS 140 Lecture Notes: Concurrency Slide 8

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend