[concurrency-interest] concurrency newbie question

Elias Ross genman at noderunner.net
Tue Jun 23 21:28:57 EDT 2009


On Tue, Jun 23, 2009 at 7:25 AM, Ashley Williams <ashpublic at mac.com> wrote:

> Unfortunately that isn't an option for me, firstly because the code that
> loads and saves this class needs
> to assume a bean-style interface rather than an intermediate Builder class,
> as it is part of a generic library
> that others may use.
>
> Also I've only included a few of the system wide settings there are
> potentially many more and therefore
> it would be wasteful that somebody who just wants to change one of the
> dozens of settings
> causes a brand new object to be created.
>
> I'm open to the fact that I'm not yet thinking correctly when it comes to
> concurrency ;) but the settings class
> I have seems to be fundamentally mutable in nature.
>

In the days before volatile and Atomic variables were commonly used, people
would just simply mark every reader and writer method as synchronized.

And even today, I feel the plain-Jane "synchronized" keyword is fine,
although it appears to lack sophistication as a Java developer. The JCiP
book makes a good argument to continue to use the synchronized keyword since
it's simple to grok.

But at the same time, I wouldn't argue against having immutable objects
either. Allocation and copying is very cheap, and the more immutable objects
you have, the less trouble you have proving a program is correct. Or more
generally, it means less bugs. But on the other hand, having simpler code is
a virtue.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20090623/ba481d12/attachment.html>


More information about the Concurrency-interest mailing list