public void someMethod()
{
HashMap localMap = null;
synchronized (clients)
{
localMap = new HashMap(clients);
}
// ... read/write work on local map ...
clients = localMap;
}
public void someOtherMethod()
{
HashMap localMap = clients;
// ... read-only work on local map ...
}
Now everyone can call someOtherMethod() without invoking the cost of synchronization, and once they obtain localMap it is guaranteed not to be modified. But someMethod() exists for those rare times when the map does need to be modified.
I don't think this is as useful as it once was - synchronization is much faster than it used to be.
-Larry
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