我维护一个应用程序,其中许多线程在许多(> 200)内核上运行。当使用std :: locale时,我们必须非常小心,因为当方法或运算符以任何方式使用locale对象时,我们会遇到全局语言环境对象的锁争用。
在我们的应用程序中,可以假定语言环境在应用程序的生命周期内保持不变(它将在启动时从系统区域设置中获取并且永远不会更改)。
当方法接受语言环境作为参数时,我们可以使用本地的本地副本准时解决我们的性能问题,或者当他们不接受时使用替代方案,但是如果我们能够告诉系统,嘿,语言环境对象是不变的,你不需要锁定它 - 这样每当我们使用新的升级库或字符串流时,我们都不必担心我们&#39 ; ve在语言环境中创建了一个锁争用。
有没有办法完成这样的事情?