Chapter 9

Shared Variables

Mutexes and race conditions

✓ Use mutexes ✓ Detect races
1
Bank1
Package bank provides a concurrency-safe bank with one account.
p.261 +20 XP advanced
2
Bank2
Package bank provides a concurrency-safe bank with one account.
p.262 +20 XP advanced
3
Bank3
Package bank provides a concurrency-safe single-account bank.
p.263 +20 XP advanced
4
Memo1
Package memo provides a concurrency-unsafe memoization of a function of type Func.
p.272 +20 XP advanced
5
Memo2
Package memo provides a concurrency-safe memoization a function of type Func. Concurrent requests are serialized by a Mutex.
p.275 +20 XP advanced
6
Memo3
Package memo provides a concurrency-safe memoization a function of type Func. Requests for different keys run concurrently. Concurrent requests for the same key result in duplicate work.
p.276 +20 XP advanced
7
Memo4
Package memo provides a concurrency-safe memoization a function of a function. Requests for different keys proceed in parallel. Concurrent requests for the same key block until the first completes. This implementation uses a Mutex.
p.276 +20 XP advanced
8
Memo5
Package memo provides a concurrency-safe non-blocking memoization of a function. Requests for different keys proceed in parallel. Concurrent requests for the same key block until the first completes. This implementation uses a monitor goroutine.
p.278 +20 XP advanced
9
Memotest
Package memotest provides common functions for testing various designs of the memo package.
p.272 +20 XP advanced