~/talk

Concurrency: It’s Harder (and Easier) Than You Think

Talkat Philly ETE 2015 · 2015-04-07..04-08· [concurrency, functional-programming]
links:none on file
slides:none on file

Shows that unsynchronized Java can print answer becomes 0 or spin forever because the CPU/memory model can reorder stores and loads. Demonstrates a real-world surprise: SimpleDateFormat not thread-safe and an elusive ScalaMock race that tests rarely catch. Replaces reduce with fold in Clojure to get a 3.2x speedup on a 4-core Mac. Builds an Akka actor cache with a supervisor restart strategy to tolerate crashes and keep the system running.

AI-written summary · about

  1. 0:00Start
  2. 3:13Memory Model
  3. 4:40Quiz
  4. 6:00The Memory Model
  5. 7:50The Nautical Crisis
  6. 9:08Instruction Level Parallelism
  7. 11:24The Elephant in the Room Testing
  8. 12:41Concurrency Bug in Scala
  9. 13:32Bordered Handlers
  10. 14:12Concurrency Bug
  11. 16:53Bottom Line Is Multi-Threaded Programming Is Hard
  12. 17:37Functional Programming
  13. 18:46Guaranteed Threadsafe Shared Mutable Data Structures
  14. 21:49Criterium
  15. 30:11Why Does this Make Concurrency So Much Easier
  16. 31:08Buggy Cash
  17. 32:03Receive Method
  18. 34:39Bugs
  19. 36:00Supervisor Strategy
  20. 36:40Null Pointer Exception
  21. 38:32It's Impossible To Write Really Reliable Software if You Write Sequential Code
  22. 41:06Father of Object-Oriented Software Development
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.