用dispatch_once 替换 @synchronized