Yep.. your way is valid too but you take a
synchronization hit on every read. The otherway, the
performace hit is on the write. As I said previously,
if you read the map ALLOT more than you write to it,
then it makes sense to do it backwards.
Regards,
Hiram
--- Dain Sundstrom <[EMAIL PROTECTED]> 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
__________________________________________________
Do you Yahoo!?
Yahoo! Shopping - Send Flowers for Valentine's Day
http://shopping.yahoo.com
-------------------------------------------------------
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