使用事件对象来同步单件对象的创建过程，保证线程安全