使用dispatch_once替换@synchronized