[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Finding concurrency errors in Java (Web seminar)
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
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
* 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
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:
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
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
Dyke Stiles Reply to: dyke.stiles@xxxxxxxxxxx