[concurrency-interest] Is it still ok to use synchronized after all these years?

Tim Peierls tim at peierls.net
Fri Nov 12 16:56:56 EST 2010

On Fri, Nov 12, 2010 at 4:43 PM, Ashwin Jayaprakash <
ashwin.jayaprakash at gmail.com> wrote:

> I was wondering if it is still ok to use the "synchronized" keyword instead
> of ReentrantLock where it is convenient.

The main reason to use Lock is for these capabilities:

   - Non-nested locking
   - Lock.newCondition
   - Lock.tryLock (timed/untimed)
   - Lock.lockInterruptibly

If you don't need any of these, go ahead and use 'synchronized'.

> Or is it thought of as an anachronism?

Nope. It's much easier to read, and there's no danger of forgetting to
release the lock.

> Does synchronized still have a better internal implementation over
> j.u.c.Lock as this old blog entry says -
> http://blogs.sun.com/dave/entry/java_util_concurrent_reentrantlock_vs ?

The scales have shifted back and forth, but it's not something to worry
about at this point.

PS: Doug Lea - if you are reading this, I hope you will continue to make
> your awesome contributions to the JDK! I can't imagine what it would be like
> without the j.u.c code.

I'm sure Doug _is_ reading this!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20101112/0b59e677/attachment.html>

More information about the Concurrency-interest mailing list