J
Jeff Stewart
According to the documentation for ArrayList.Synchronized:
"To guarantee the thread safety of the ArrayList, all operations must be
done through this wrapper.
Enumerating through a collection is intrinsically not a thread-safe
procedure. Even when a collection is synchronized, other threads could still
modify the collection, which causes the enumerator to throw an exception. To
guarantee thread safety during enumeration, you can either lock the
collection during the entire enumeration or catch the exceptions resulting
from changes made by other threads."
To me, this reads, "To guarantee thread safety, do this, but remember that
thread safety isn't guaranteed by doing this." ??? Why would you ever use
..Synchronized rather than SyncLocking an ArrayList's SyncRoot?
"To guarantee the thread safety of the ArrayList, all operations must be
done through this wrapper.
Enumerating through a collection is intrinsically not a thread-safe
procedure. Even when a collection is synchronized, other threads could still
modify the collection, which causes the enumerator to throw an exception. To
guarantee thread safety during enumeration, you can either lock the
collection during the entire enumeration or catch the exceptions resulting
from changes made by other threads."
To me, this reads, "To guarantee thread safety, do this, but remember that
thread safety isn't guaranteed by doing this." ??? Why would you ever use
..Synchronized rather than SyncLocking an ArrayList's SyncRoot?