Performance

Episode 2. Deadlock, Livelock, Escaped locks, and wait/notify oh my!

In this episode of Java pub house, we talk about Deadlocks, livelocks (and other spooky things). Most importantly we talk on how to spot them (using jstack, or visualvm), and how to program defensively against them. We also talk about escaped locks (the source of most deadlocks), and the wait/notify language construct. Finally we describe the unfairness of the lock (locks are not “fair” by default), and why is it so.

Happy Programming!

Episode 1. Volatile, and Synchronized

On this Episode, we talk about the keyword “volatile”, and what does it really mean. Even if you are a multithreading guru, this chapter goes in deep of the different things that volatile protects you from, including L2 caches and code re-ordering. We also cover the use of synchronized, and why, even though is convenient, it might create more headache than it actually solves.

Happy Programming!