C++ 从不同线程同步调用公共函数
我有一个要求,我需要根据动态激活的触发器发送电子邮件。我已经在下图中简要介绍了我当前的代码体系结构 在下图中,我有一个classSample.cpp,它具有Common功能,我可以在其中发送电子邮件。此通用函数正在从EmailClass中的函数triggerFun的单个线程中调用EmailClass由多个类动态调用,如下图所示 我的要求是,我希望跨多个线程同步使用common函数。意味着一次只需要一个线程调用common函数。在第一个线程中竞争使用公共函数后,然后要允许第二个线程允许执行公共函数等 您能告诉我是否有任何方法可以在使用函数common时同步线程吗C++ 从不同线程同步调用公共函数,c++,multithreading,thread-safety,mutex,C++,Multithreading,Thread Safety,Mutex,我有一个要求,我需要根据动态激活的触发器发送电子邮件。我已经在下图中简要介绍了我当前的代码体系结构 在下图中,我有一个classSample.cpp,它具有Common功能,我可以在其中发送电子邮件。此通用函数正在从EmailClass中的函数triggerFun的单个线程中调用EmailClass由多个类动态调用,如下图所示 我的要求是,我希望跨多个线程同步使用common函数。意味着一次只需要一个线程调用common函数。在第一个线程中竞争使用公共函数后,然后要允许第二个线程允许执行公共函数
您可以使用
std::mutex
void common() {
static std::mutex m;
std::lock_guard lck(m);
// do something
}
你在找std::mutex吗?@maximum_prime_是_463035818,在我的例子中,有10多个线程试图访问“Common”函数。所以,当我使用互斥锁时,是否所有剩余的线程都会等待公共函数从前一个线程函数解锁,然后剩余的线程就会被执行?在我的例子中,有10多个线程试图访问“公共”函数。所以,当我使用互斥锁时,是否所有剩余的线程都会等待公共函数从前一个线程函数解锁,然后剩余的线程就会被执行?@masthan是的,这就是互斥锁的用途。有关更多信息,请参阅。