Use Queue for inter-thread communication