ConcurrentHashMap, Vector, CopyOfArrayList, etc. But this does not mean that multithreaded operations are error-free.

For example: the Vector

When the Vector operation getLast alternately, deleteLast ArrayIndexOutOfBoudsException abnormalities may occur. Vector calls methods to lock, but its internal variables are not locked. This means that it is possible to generate errors when calling different methods on Vector at the same time.