Improvement

Using NonBlockingLinkedQueue instead of List to avoid usage of lock