qDebug()
线程安全吗?通过线程安全,我不仅仅意味着不崩溃,而且如果我qDebug()
从不同的线程调用,输出是否有可能变得混淆?我用这段代码对其进行了测试,但似乎并非如此,但是,我在他们谈论这个的文档中找不到任何地方。
这是我的测试代码:
#include <QtConcurrent>
#include <QApplication>
void print_a() {
for (int ii = 0; ii < 10000; ii++) {
qDebug("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
}
}
void print_b()
{
for (int ii = 0; ii < 10000; ii++) {
qDebug("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QtConcurrent::run(print_a);
QtConcurrent::run(print_b);
return a.exec();
}
任何地方都没有'a'和'b'混合在同一行中,但我仍然不确定它是否100%线程安全......