October 10, 2012 · 6:00 PM
This location is shown only to members
Note; this meeting is a special workshop for ADVANCED Java developers!
6:00pm sharp: JavaOne 2012 Recap (intro - part 1 of 3) + networking break
Note: this is brief JavaOne 2012 review - we will provide more detailed coverage in future meetings for all levels (starting Nov 19)! Non-advanced Java developers are welcome at this intro but recommended to stay tuned to future meetings in November! Please update your RSVP if you decide not to attend to allow those interested in the hands on lab a seat from 7:00pm-9pm.
6:45pm sharp: a special hands-on lab:
Finding and Solving Java Deadlocks Workshop with Dr Heinz Kabutz
One of the hazards of multithreaded code is that if we are not careful, we might cause a deadlock in our program. The simplest of these is the “deadly embrace,” in which locks are acquired by multiple threads in different orders. The simple deadlocks can be detected automatically with the deadlock detection tool in the ThreadMXBean. However, there are also other types of deadlocks that cannot be detected automatically and that require analysis of the stack traces of all the threads, just as in the good old days. This hands-on-lab explains what causes deadlocks and how to find them. You will then be given a body of code to test for deadlocks, using the techniques learned.
Dr Heinz Kabutz
Heinz Kabutz has been writing Java deadlocks since 1997. His first deadlock occurred when he tried to bullet-proof his code by having two locks around the database code. In one place he forgot one lock, leading to a deadly embrace. At the time, deadlocks could only be found manually and with a fair amount of effort. Heinz started his Java Specialists' Newsletter in 2000 with an article on deadlock detection. He has since written over 200 articles on a variety of topics to do with advanced Java.
Heinz was chosen as a Java Champion in 2005 for his work in promoting Java through his newsletter, now read by 50000 Java programmers in 126 countries.
Pre-requisites for the lab:
- You must bring your laptop with Java 6 or 7 installed, your favorite IDE
- Knowledge of Java 5/6 concurrency