"Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> wrote in message
Lew wrote:
Also, all the methods in Vector and Hashtable are synchronized, an
overhead not needed in thread-local contexts. Furthermore, the
Collections class can make synchronized versions of any collection.
Unfortunately, that's not quite true. /Some/ of the methods in Vector and
Hashtable are synchronised, including all the methods from "classic"
Vector and
Hashtable. But the methods which they gained as part of the retrofitting
to
the Collections framework (the ones inherited unaltered from AbstractList
and
Dictionary) are not explicitly synchronised, and are not always safe.
Worse,
there is no way of telling which of the "new" methods are safe except by
inspecting the sources to java.util.*. Similarly, there is no way of
telling,
just from reading code which uses a Vector or Hashtable, whether it is
using
methods from the safe "classic" set or from the potentially unsafe new
Collections set.
(I'd cite examples, except that I can't remember the details off-hand, and
don't want to go grubbing around in the source to rediscover them.)