[jboss-dev] Thread safety problems

Anil Saldhana Anil.Saldhana at redhat.com
Fri Apr 17 13:34:39 EDT 2009


Jason T. Greene wrote:
> David M. Lloyd wrote:
>> When writing an API or SPI it is absolutely critical that all the 
>> elements of that API or SPI are thoroughly documented with any 
>> information related to the thread safety (or lack thereof) of that 
>> element.  We have a great deal of code (and I'm talking critical, 
>> core stuff) out there with little or no javadoc at all, let alone 
>> thread safety information in said documentation.  This creates the 
>> possibility for situations like SPIs which can end up being 
>> implemented with completely wrong thread safety semantics, basically 
>> leaving time bombs in the code.  See 
>> http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4226025 for 
>> one recent example.
>>
>> We still have way too much code doing double-checked locking, or 
>> using locks in strange or non-optimal ways, or using thread 
>> interruption wrong, or making wrong assumptions about the JMM.  Own 
>> and read this book: http://jcip.net/ - don't think you understand 
>> concurrency until you have done so - seriously.
>
> Well said. Every contributor should read this book, it is essential 
> knowledge.
>
> I will also add that all new designs/enhancements must take thread 
> interaction into consideration. It is much harder to retrofit an 
> existing API/implementation to be safe and efficient after it has been 
> completed.
>
> If you aren't sure how to solve a threading problem, or want to 
> validate your design please ask here or on the forums! We have many 
> experts in this area.
Should we also maybe start a "Best Practices" wiki article or such for 
folks to review often? It is just not thread safety that we need to be 
worried. Things such as privileged blocks also need to be taught.  JCIP 
is one of the best books I have ever read. :)

We have got to continue and enhance the culture of design discussions 
and the use of this development list. :)



More information about the jboss-development mailing list