Thread communication using a queue