Blocking vs. Non-Blocking Primitives
send
receive
blocking
non-blocking
Returns control as soon as
message queued or copied.
Signals willingness to
receive message.
Buffer is ready.
Returns control to user
only after message has
been sent, or until
acknowledgment has
been received.
Returns only after message
has been received.
Need buffering:
still blocking
deadlocks!
Tricky to program.
Reduces concurrency.
problems
Previous slide
Next slide
Back to first slide
View graphic version