After reading a bunch of papers about type systems that prevent data races in multithreaded programs, I asked myself the question: Short of a type system, can a clever methodology be used to prevent data races? It turns out that clear understanding of what data is shared and which operations are inherently unsafe goes a long way towards eliminating sources of data races. I’ll talk about monitors, ownership, alias control, unique objects and lock-free programming, all in the service of race-free concurrency.
Bartosz Milewski has a Ph.D. in Theoretical Physics. He published several papers on Quantum Gravity and String Theory before he switched to programming and Computer Science. He was project lead for the Microsoft search engine before the Internet explosion. He published a book, C++ In Action. Bartosz keeps up with the latest developments in CS by attending graduate courses and seminars at the UW. He actively works on the design of the D language. He regularly blogs about concurrency at http://BartoszMilewski.wordpress.com.