/
CS 140 Lecture Notes: Concurrency CS 140 Lecture Notes: Concurrency

CS 140 Lecture Notes: Concurrency - PowerPoint Presentation

breezeibm
breezeibm . @breezeibm
Follow
342 views
Uploaded On 2020-07-04

CS 140 Lecture Notes: Concurrency - PPT Presentation

Slide 1 Too Much Milk Roomate A 300 Arrive home no milk 305 Leave for store 310 Arrive at store 315 Leave store 320 Arrive home put milk away CS 140 Lecture Notes Concurrency ID: 795344

note milk store buy milk note buy store arrive concurrency slide notes lecture thread 140 leave notea noteb roomate

Share:

Link:

Embed:

Download Presentation from below link

Download The PPT/PDF document "CS 140 Lecture Notes: Concurrency" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

CS 140 Lecture Notes: Concurrency

Slide 1

Too Much Milk

Roomate

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

Slide2

CS 140 Lecture Notes: Concurrency

Slide 2

Too Much Milk

Roomate

A

Roomate

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!

Slide3

CS 140 Lecture Notes: Concurrency

Slide 3

Computerized Milk Purchase

1

if

(milk == 0)

{

2

if

(note == 0)

{

3

note = 1;

4

buy_milk

();

5

note = 0;

6

}

7

}

Slide4

CS 140 Lecture Notes: Concurrency

Slide 4

Still Too Much Milk

Thread A:

Thread B:

if

(milk == 0)

{

if

(note == 0)

{

if

(milk == 0)

{

if

(note == 0)

{

note = 1;

buy_milk

();

note = 0;

}

}

note = 1;

buy_milk

();

note = 0;

}

}

Slide5

CS 140 Lecture Notes: Concurrency

Slide 5

Second Attempt

Thread A:

if

(note == 0)

{

if

(milk == 0)

{

buy_milk

();

}

note = 1;

}

Thread B:

if

(note == 1)

{

if

(milk == 0)

{

buy_milk

();

}

note = 0;

}

Slide6

CS 140 Lecture Notes: Concurrency

Slide 6

Third Attempt

Thread A:

1

noteA

= 1;

2

if

(

noteB

== 0)

{

3

if

(milk == 0)

{

4

buy_milk

();

5

}

6 }7 noteA = 0;

Thread B:

1

noteB

= 1;

2

if

(

noteA

== 0)

{

3

if

(milk == 0)

{

4

buy_milk

();

5

}

6

}

7

noteB

= 0;

Slide7

CS 140 Lecture Notes: Concurrency

Slide 7

Fourth Attempt

Thread A:

1

noteA

= 1;

2

if

(

noteB

== 0)

{

3

if

(milk == 0)

{

4

buy_milk

();

5

}

6 }7 noteA = 0;

Thread B:

1

noteB

= 1;

2

while

(

noteA

== 1)

{

3

// do

nothing

4

}

5

if

(milk == 0)

{

6

buy_milk

();

7

}

8

noteB

= 0;

Slide8

CS 140 Lecture Notes: Concurrency

Slide 8