我有一个函数,多个线程可以同时调用它。这个函数有一个输入参数。例如,请考虑以下功能:使用多线程中的输入参数调用函数
bool MyClass::run(QString moduleName)
{
qDebug() << QThread::currentThreadId();
...
}
我有两个使用此功能的选项。调用像下面这个函数的时候
...
run("Reza"); // can be different for different threads
...
bool MyClass::run(QString moduleName)
{
qDebug() << QThread::currentThreadId();
QMutexLocker locker(&runMutex);
...
}
二是使用互斥:
...
runMutex.lock();
run("Reza"); // can be different for different threads
runMutex.unlock();
...
bool MyClass::run(QString moduleName)
{
qDebug() << QThread::currentThreadId();
...
}
哪一个是正确的,更好的首先,我可以用一个互斥run函数里面像下面?输入参数(moduleName)是否在第一个选项中更改? (我的意思是当调用线程通过此功能不同的参数)
在此先感谢您的帮助。 Reza
你想用你的互斥锁保护哪个资源? (并且'qDebug()'在你的第一个片段中没有被保护)。 – Jarod42
定义“更好”... –
@ Jarod42我有我的“运行”功能,我想用互斥保护一些共同的资源。我知道qDebug()没有被保护。 – Reza