
Guest:
Brian Goetz and David Holmes
Host: Markus
Recorded at:
OOPSLA 2006
This is another episode on concurrency. We talk to two experts in the field, Brian Goetz and David Holmes about
aspects of concurrency we hadn't really covered before.
We start out by discussing liveness and safety and then continue to talk about synchronizers (latches, barriers,
semaphores) as well as the importance of agreeing on protocols when developing concurrent applications. We then
talked about thread confinement as a way of building thread-safe programs, as well as using functional programming
and immutable data.
The next set of topics covers various ways of how compilers can optimize the performance wrt. to concurrency,
talking about techniques such as escape analysis as well as lock elision and coarsening. We then covered how to test
concurrent programs and the consequences of the Java memory model on concurrency.
We then went on to look at some more advanced topics, namely, lock-free programming and atomic variables. We also
briefly discussed the idea of transactional memory.
Finally, we looked at how better language support - specifically, a more declarative style of concurrent programming
as e.g. in the Fortress language - can aid in improving the quality of concurrent programs.
Publicize:
Digg this
Post to del.icio.us
Post to Slashdot