gpt4 book ai didi

C++成员函数线程安全

转载 作者:行者123 更新时间:2023-11-30 01:26:22 26 4
gpt4 key购买 nike

我正在编写一个用于记录消息的函数。我将从不同的线程调用此打印函数。我的代码如下:

MyLog::printLog(const char* s)
{

std::string myline(s);
//m_Mutex is class member and there will be only object for this class
// shared by all threads
int ret = pthread_mutex_lock(&m_Mutex);
if ( ret != 0 )
{
std::cout<<" trying to lock same mutex char* "<<std::endl;

}


//code to log message in File

pthread_mutex_unlock(&m_Mutex);
}

我的问题是,如果上面的函数是从不同的线程调用的,参数如“from thread1”,“from thread 2”,......是否有任何机会 const char *s 会打印错误的值。?我希望我的问题很清楚。

最佳答案

您的函数将如您所愿地工作,因为 myline 是一个局部变量(每个线程都有自己的堆栈,因此会有自己的 myline 实例)

关于C++成员函数线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10565348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com