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.
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.
Welcome to Java Public House, the podcast (and blog) dedicated to the hard working Java professional!
This blog was created to help those of us who have to work with Java day in and day out, and its mission is simple, is a podcast created by a developer for developers. You can think of it as "free" training seminars in downloadable form. We will cover Java related topics (such as multithreading, Swing, JavaFx) and gear it towards understanding these topics a little bit better, and while there are a tons of sites out there that describe good things about Java, we tried to be a little different.
This podcast talks about how to program in Java; not your tipical system.out.println("Hello world"), but more like real issues, such as O/R setups, threading, getting certain components on the screen or troubleshooting tips and tricks in general. The format is as a podcast so that you can subscribe to it, and then take it with you and listen to it on your way to work (or on your way home), and learn a little bit more (or reinforce what you knew) from it.
Within this podcast we are open to get questions from everyone, and the most popular then gets slotted for next week's topic (as easy as that!). So, let's learn together, and have fun (and become better professionals!), a win win!
Why should I listen to this guy? (A little bio)
Ok, so my name is Freddy Guime, I have three kids, two cats and one wife
I Presented at JavaOne twice (and scheduled to present in 2011) on topics related to multithreading and Swing.
I work for Optionscity Software Inc, as their Director of Client Technology (don't worry, it stills involves programming 90% of the time), and wear many hats (usability expert, performance Guru, and coffee-to-code processor. Within Optionscity I'm proud of what we create (it's very innovate, and cutting edge), and always love the challenge of pushing Java to its limit.