On Fri, 15 Feb 2002, Artur Biesiadowski wrote: > If you can show me an example, where having isEmpty()/size() > synchronized _guarantees_ anything with fully preemptive threading, > which is not guaranteed with unsynchronized version, then let it be your > way. But I think that no such example can be given (but I would be happy > to be proven wrong, as this would mean I do not understand some basic > stuff with java threading).
Your points have merit... calling isEmpty() without synchronizing isn't very useful. But it still has side effects, like a memory barrier. I'm wary of removing any occurrences of synchronization as an optimization, including things like "synchronized (this) {}", because of the implied barrier semantics. Consider: Hashtable ht; a = 0; b = 0; ... a = 1; ht.size(); b = 1; and in another thread: synchronized (this) { System.out.println(a + "," + b); } can this ever print 0,1? Jeff _______________________________________________ Classpath mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/classpath