This one looks to me as if it is not subject to double-checked locking type
problems. I think it is fine, since the copy is made in a synchronized
block and accessed in the same thread.
david jencks
On 2003.02.13 12:35 Dain Sundstrom wrote:
> This seems backwards to me. I usually do something like this:
>
> class X
> {
> HashMap clients = new HashMap();
>
> public void someMethod()
> {
> synchronized(clients)
> {
> m.put(dc, cq);
> }
> ...
> }
> public void someOtherMethod()
> {
> HashMap clientsCopy = null;
> synchronized(clients)
> {
> clientsCopy = new HashMap(clients);
> }
> Iterator i = clientsCopy.keySet().iterator();
> while( i.hasNext() )
> {
> ...
> }
> }
> }
>
> For the insert, you only get a quick synchronized around the add, and
> on iteration you get a single copy in the synchronize. If the
> iteration very small and quick, I sometimes put the entire iteration in
> the synchronized block, but you need to be careful about open calls.
>
> -dain
>
> On Thursday, February 13, 2003, at 11:20 AM, Scott M Stark wrote:
>
> > I have seen this usage construct in a few places in the code and it
> > makes
> > no sense to me:
> >
> > class X
> > {
> > HashMap clients = new HashMap();
> >
> > public void someMethod()
> > {
> > synchronized(clients)
> > {
> > HashMap m = new HashMap(clients);
> > m.put(dc, cq);
> > clients=m;
> > }
> > ...
> > }
> > public void someOtherMethod()
> > {
> > Iterator i = clients.keySet().iterator();
> > while( i.hasNext() )
> > {
> > ...
> > }
> > }
> > }
> >
> > The unsynchronized clients HashMap is synchronized and copied when
> > modified and accessed without synchronization in other contexts. This
> > is
> > not thread safe for the accesses and makes for very expensive updates.
> > Why isn't the HashMap simply synchronized and used without copying?
> >
> > xxxxxxxxxxxxxxxxxxxxxxxx
> > Scott Stark
> > Chief Technology Officer
> > JBoss Group, LLC
> > xxxxxxxxxxxxxxxxxxxxxxxx
> >
> >
> > -------------------------------------------------------
> > This SF.NET email is sponsored by: FREE SSL Guide from Thawte
> > are you planning your Web Server Security? Click here to get a FREE
> > Thawte SSL guide and find the answers to all your SSL security issues.
> > http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en
> > _______________________________________________
> > Jboss-development mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/jboss-development
>
>
>
> -------------------------------------------------------
> This SF.NET email is sponsored by: FREE SSL Guide from Thawte
> are you planning your Web Server Security? Click here to get a FREE
> Thawte SSL guide and find the answers to all your SSL security issues.
> http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development
>
>
-------------------------------------------------------
This SF.NET email is sponsored by: FREE SSL Guide from Thawte
are you planning your Web Server Security? Click here to get a FREE
Thawte SSL guide and find the answers to all your SSL security issues.
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development