how to use lock to implement linked lists
Queue