• Sample code: [https://github.com/winitzki/scala-thr...] • The backbone of Java concurrency: thread pool executors • How and when do Futures run? (On thread pools.) • What does it mean to be “thread safe” and “nonblocking”? – nonblocking = uses multi-core CPU optimally – thread safe = permits easy concurrent nonblocking code • Some typical “gotchas” when using Futures in the real world • Converting other async APIs to Futures and back Slides (PDF): https://github.com/winitzki/talks/blo...