解决国际化信息修改过程中需要加锁而带来的以下问题: 1. 瞬时连接激增时争抢gLocaleMutex影响执行效率; 2. gLocaleMutex属于pthread mutex lock,无异常清理机制,若持有锁的线程异常退出则导致系统HANG住。 为解决上述问题,做出以下调整: 1. 仅允许在服务端启动时调用setlocale接口修改服务端locale信息; 2. 新增gs_perm_setlocale_r修改线程自身的locale信息; 3. 由于服务端locale信息仅在启动时修改,故删除gLocaleMutex锁相关逻辑。 |