On Tuesday, 20 October 2015 at 18:15:05 UTC, Bruno Medeiros wrote:
On 16/10/2015 08:02, Jacob Carlborg wrote:
On 2015-10-16 08:49, Dicebot wrote:

As far as I understand topic is about deprecating direct field access of
synchronized classes, method calls in synhronized classes and
`synchronized () {}` blocks will remain untouched.

Is it even possible to do synchronized classes in Java? That is, but
synchronized on the class declaration as in D.


No, it's not possible. `synchronized` in Java can only apply to methods, or the synchronized statement.

And (for a change), rightly so that it's not possible. This synchronized class feature seems to me a clumsy mis-feature. At first glance at least.

This change seems like a good idea.

As far as having synchronized classes go. I think they can be useful. If, as some of the respondents have said a synchronized class is wrong, then perhaps their classes are too big and indeed require fine grained locks everywhere. Or, if it is performance you are after, then that is the way you might do it.

If, however, you would like better defense against multi-threaded related breakage against your non time-critical class, a class wide lock, surely, would be of benefit.

Reply via email to