C++ 重写std::locale构造函数的行为

C++ 重写std::locale构造函数的行为,c++,multithreading,locale,C++,Multithreading,Locale,我维护一个应用程序,其中许多线程在许多(>200)内核上运行。当使用任何使用std::locale的东西时,我们必须非常小心,因为当方法或操作符以任何方式使用locale对象时,我们会遇到全局locale对象上的锁争用 在我们的应用程序中,可以假设区域设置在应用程序的生命周期内保持不变(它将在启动时从系统区域设置中获取,并且永远不会更改) 当本地方法接受locale作为参数时,我们可以使用本地方法的本地副本准时解决性能问题,或者在不接受locale作为参数时使用替代方法,但如果我们能告诉系统lo

我维护一个应用程序,其中许多线程在许多(>200)内核上运行。当使用任何使用std::locale的东西时,我们必须非常小心,因为当方法或操作符以任何方式使用locale对象时,我们会遇到全局locale对象上的锁争用

在我们的应用程序中,可以假设区域设置在应用程序的生命周期内保持不变(它将在启动时从系统区域设置中获取,并且永远不会更改)

当本地方法接受locale作为参数时,我们可以使用本地方法的本地副本准时解决性能问题,或者在不接受locale作为参数时使用替代方法,但如果我们能告诉系统locale对象是常量,您不需要锁定它,那就太好了,这样每当我们使用新的boost库时,或者是stringstream,我们不必担心已经在区域设置上创建了锁争用

有没有办法完成这样一件事