We really should be looking at non-blocking solutions ... not moving more towards fully synchronized data structures like this. This class is fully synchronized, and is the type of class that can be contended. In the particular way you're using it it is highly unlikely to be contended, but being public, it will get used in places where it is contended.

Since we're now working on optimizations, I'd prefer we spend the time optimizing in the right direction, away from blocking synchronization and getting a few battle tested, highly tuned non-blocking data structures that we use internally. 

For example: 

- http://sourceforge.net/p/amino-cbbs/svn/HEAD/tree/trunk/amino/java/src/main/java/org/amino/ds/lockfree/
- https://github.com/netty/netty/blob/master/common/src/main/java/io/netty/util/internal/MpscLinkedQueue.java

There are lots of places to start digging (for example https://www.google.com/search?client=safari&rls=en&q=non-blocking+spsc+queue&ie=UTF-8&oe=UTF-8#q=java+non-blocking+spsc+queue&rls=en and https://www.google.com/search?client=safari&rls=en&q=java+non-blocking+mpsc+queue&ie=UTF-8&oe=UTF-8) but Netty, Akka and other similar OSS projects are good places for us to study and leverage.