gpt4 book ai didi

c++ - QMutex ,如果线程正在运行,则在这里等待

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

我只想实现如下代码。

QString Class1::getNonce()
{
//if some thread is getting nonce wait here until it finishes the its own job.
mutex.lock();
QString nonce=QString("%1").arg(QDateTime::currentDateTime().toTime_t());
mutex.unlock();
return nonce;
}

即使我用互斥锁编写,不同的线程也会得到相同的随机数。我怎么解决这个问题?谢谢。

最佳答案

我更喜欢使用 QMutexLocker

Class1::Class1()
{
m_mutex = new QMutex();

}

QString Class1::getNonce()
{
static int counter = 0;
QMutexLocker locker(m_mutex);
counter++;
return QString::number(counter);
}

希望对您有所帮助。

关于c++ - QMutex ,如果线程正在运行,则在这里等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20694717/

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