依赖平台编译器宏的判断:
C/C++ MACOS、Windows、Linux、HarmonyOS 平台宏判断-CSDN博客
源实现:(设置当前线程名)
bool SetThreadName(const char* name) noexcept {
if (NULL == name || *name == '\x0') {
return false;
}
#if defined(_WIN32)
std::wstring name_wstr = ppp::text::Encoding::ascii_to_wstring(name);
if (name_wstr.empty()) {
return false;
}
HRESULT hr = SetThreadDescription(GetCurrentThread(), name_wstr.data());
if (FAILED(hr)) {
return false;
}
#elif defined(_MACOS)
pthread_setname_np(name);
#else
pthread_setname_np(pthread_self(), name);
#endif
return true;
}
}