我想使用
std::to_string
将整数类型转换为字符串,但我看到了这段话:
std::to_string
依赖于std::locale
进行格式化,因此从多个线程同时调用std::to_string
可能导致部分调用的串行化。
但我在这个主题上找不到其他信息,谷歌也没有搜到任何东西,MSDN也是如此。如果它很安全,它是如何安全的?
setlocale
就不是线程安全的,因此如果std::to_string
调用了它,可能会使用互斥锁来确保多个调用不会竞争。 - NathanOliverstd::to_string
涉及锁定互斥量,那似乎相当丑陋和性能不佳。 - Nir Friedmanstd::locale
类本身:它是不可变的,因此不存在读/写竞争的可能性。 - Revolver_Ocelot