相关的Issue
锁与二次检查未重新获取值,造成多线程下program被多次初始化

原因(目的、解决的问题等)
描述(做了什么,变更了什么)
修改key的锁方式,并且在锁内重新获取program再做二次检查