Even though
    private List synchList = Collections.synchronizedList(new LinkedList());
is thread safe, serialize sync List is NOT thread safe for sure. The story is, if you only synchronized the collection, and if we try to get the iterator in concurrent access environment, it will throws currencymodificationexception . For collection is small, may be making defensive copy http://www.javapractices.com/Topic15.cjp is good. Otherwise, in java5, there is concurrency collection. reference: http://jroller.com/page/jvenu?entry=collections_synchronizedlist_broken http://jroller.com/page/ctarrington?entry=java_collections_trivia Map operation, include use of FutureTask and putIfAbsent() method from ConcurrentMap. - http://www.javaspecialists.co.za/archive/newsletter.do?issue=125 Other then lterate through the elements, adding and removing elements can also be problem, this article document a few good cases about that - http://rayfd.wordpress.com/2007/11/11/when-a-synchronized-class-isnt-threadsafe/ Samples of using Queue.drainTo() - http://binkley.blogspot.com/2007/09/performing-fixed-amounts-of-work-with.html http://tech.puredanger.com/2009/02/28/java-7-transferqueue/ Overview of blockingqueue - http://tutorials.jenkov.com/java-util-concurrent/blockingqueue.html Simple benchmark - http://java-persistence-performance.blogspot.com/2011/03/jvm-performance-part-iii-concurrent.html Multi-thread behaviour - http://vanillajava.blogspot.com/2011/06/thread-safety-issues-with-vector-and.html java.util.concurrent.ConcurrentHashMap VS openhft.collections.SharedHashMap - http://openhft.blogspot.co.uk/2014/03/javautilconcurrentconcurrenthashmap-vs.html Why are there so many concurrent queues implementations in Java? - https://vmlens.com/articles/cp/why_so_many_queues/ Why hashmap is not thread safe - https://www.pixelstech.net/article/1585457836-Why-Java-HashMap-is-considered-as-thread-unsafe