qt开两个线程打印log
时间: 2023-08-17 14:55:41 浏览: 167
要在Qt中创建两个线程并打印日志,你可以使用自定义的`QThread`类和信号槽机制。下面是一个示例代码,展示了如何在两个线程中打印日志:
```cpp
#include <QCoreApplication>
#include <QThread>
#include <QDebug>
// 自定义的工作线程类
class WorkerThread : public QThread
{
Q_OBJECT
public:
void run() override {
// 执行一些耗时的任务并打印日志
for (int i = 0; i < 5; ++i) {
qDebug() << "Thread " << QThread::currentThreadId() << ": Working..." << i;
msleep(1000); // 暂停1秒
}
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建两个工作线程
WorkerThread thread1;
WorkerThread thread2;
// 启动两个线程
thread1.start();
thread2.start();
return a.exec();
}
#include "main.moc"
```
在上述代码中,我们首先定义了一个自定义的工作线程类`WorkerThread`,继承自`QThread`。在`run()`函数中,我们执行了一个简单的耗时任务,并在每次迭代中打印当前线程的ID和迭代计数。
在`main()`函数中,我们创建了两个`WorkerThread`对象`thread1`和`thread2`。然后,通过调用`start()`函数启动这两个线程。
运行这个示例代码后,你将看到两个线程交替打印日志,每秒打印一次,如下所示:
```
Thread 0x7f9d34002700 : Working... 0
Thread 0x7f9d30004700 : Working... 0
Thread 0x7f9d30004700 : Working... 1
Thread 0x7f9d34002700 : Working... 1
Thread 0x7f9d30004700 : Working... 2
Thread 0x7f9d34002700 : Working... 2
Thread 0x7f9d30004700 : Working... 3
Thread 0x7f9d34002700 : Working... 3
Thread 0x7f9d30004700 : Working... 4
Thread 0x7f9d34002700 : Working... 4
```
注意:每次运行时线程的ID可能会有所不同。
希望这可以帮助你实现在两个线程中打印日志!如果还有其他疑问,请随时提问。
阅读全文