- use Event to solve multi-thread synchronization problem