[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Finding concurrency errors in Java (Web seminar)

Thanks, Dyke.

For those who register, I wanted to add you'll have an opportunity to listen to the accompanying audio of the original presentation while viewing the slides, just like the original webinar. In addition, it is possible to download the slides.

Too bad time ran out before Tom Schultz (the speaker) got to your question, Dyke...

My take on this presentation is mixed. The speaker does a very nice job of pointing out two perils of Java multithreaded concurrency that are exacerbated in light of multicore: deadlocks and race hazards.

The tool, Coverity Thread Analyzer, uses a combination of static and dynamic analysis to detect race hazards and deadlocks before they occur. Here are the highlights of the scenarios presented of detection capabilities:

* race hazard detection mainly arises by detecting the absence of the Java synchronized keyword around methods (or presumably code blocks) where an instance variable is accessed. this was an example of static analysis, and not especially impressive.

* deadlock detection is more impressive, although demo'd on the well- known dining philosophers. the analyzer detected the potential cycle of lock requests before they occurred. this was an example of dynamic analysis, and more impressive. still, whether all such potential cyclical waits would be detected is unclear from the presentation.

The analyzer is implemented by exploiting the new JVM capability of specifying:
which is meant to facilitate profiling since Java 1.5. I was previously unaware of --javaagent.

The analyzer tool runs standalone or via an Eclipse plug-in. When running via plugin, of course, one's program is sharing the JVM with Eclipse, and runtime behavior may differ from when run standalone. I don't recall this point being addressed.

For those who are going down the path of learning to write multithreaded Java programs, I believe this tool would be useful. There is, however, a better way...

For more details, or to clarify what I may have hurriedly misrepresented, I encourage everyone to view this webinar. It represents our competition...


On Jun 4, 2008, at 7:56 PM, Dyke Stiles wrote:

Greetings -

I did sit in on the Webinar below. It looks like you can download the
presentation (pdf) simply by registering any time. No charge.

The presentation did not mention whether the tool is guaranteed to
detect all problems - and time ran out before they got to my


Adrian Lawrence forwarded this to me - maybe someone could check it out?
Coverity invites you to attend this complimentary Webinar:
Event: Finding Runtime Concurrency Errors in Multithreaded Java
Date:  Tuesday, June 3, 2008
Time: 11 am PT / 2 pm ET
Duration: 60 Minutes
Register now!

= = = = = = = = ========================================================================
Dyke Stiles			               Reply to: dyke.stiles@xxxxxxxxxxx
= = = = = = = = ========================================================================