"lazy" based on SizedQueue + Thread
synchronized access to @collection_elements