- 博客(15)
- 收藏
- 关注
原创 第76课 - 多线程间的互斥(下)
#include <QtCore/QCoreApplication>#include <QThread>#include <QMutex>#include <QDebug>QMutex g_mutex_1;QMutex g_mutex_2;class ThreadA : public QThread{protected: void run() { whil...
2020-09-23 09:12:43 96
原创 第75课 - 多线程间的互斥(上)
#include <QtCore/QCoreApplication>#include <QThread>#include <QMutex>#include <QDebug>static QMutex g_mutex;static QString g_store;class Producer : public QThread{protected: void run() {...
2020-09-23 08:49:15 95
原创 第73课 - Qt 中的多线程编程
线程是有生命周期的,创建线程,然后start,然后运行,线程是有生命周期的,不会一直执行,会被操作系统打断,从而进入不可运行状态,让出CPU资源,进而系统调用其他线程执行。所有的线程看起来是并行的执行,但是从CPU的角度来看,是CPU调度执行,共享CPU资源,但调度非常快,给我们的主观感受是并行执行。在单CPU资源中,是线程的并行执行,是CPU调度产生的。线程都会死亡的,死亡分为自然死亡,非自然死亡,调用terminate是非自然死亡,会产生不可预测的错误,是禁止使用,暴力结束线程。...
2020-09-22 16:17:49 164
原创 第85课 - 多线程与界面组件的通信(下)
#ifndef WIDGET_H#define WIDGET_H#include <QtGui/QWidget>#include <QPlainTextEdit>#include "UpdateThread.h"class Widget : public QWidget{ Q_OBJECT UpdateThread m_thread; QPlainTextEdit textEdit;public: ...
2020-09-25 11:50:09 125
原创 第83课 - 另一种创建线程的方式(推荐此方法)
《Qt 实验分析教程》 – 第 83 课勘误 在 Qt 中通过组合的方法实现多线程类是一种常用的设计模式,其原理是直接 响应 started() 信号,在子线程中执行指定的线程体函数(tmain() 槽函数)。 AnotherThread::AnotherThread(QObject *parent) : QObject(parent) { moveToThread(&m_thread); connect(&m_thread, SIGNAL(started()),
2020-09-24 20:20:08 120
原创 第81课 - 信号与槽的连接方式
#include <QtCore/QCoreApplication>#include <QDebug>#include <QThread>#include "TestThread.h"#include "MyObject.h"void direct_connection(){ static TestThread t; static MyObject m; QObjec...
2020-09-24 19:53:42 129
原创 第80课 - 多线程中的信号与槽(下)
#ifndef FILEWRITER_H#define FILEWRITER_H#include <QObject>#include <QFile>#include <QThread>class FileWriter : public QObject{ Q_OBJECT class Worker : public QThread { protected: vo...
2020-09-24 19:25:25 95
原创 第78课 - 多线程中的信号与槽(上)
#ifndef TESTTHREAD_H#define TESTTHREAD_H#include <QThread>class TestThread : public QThread{ Q_OBJECTprotected: void run();public: explicit TestThread(QObject *parent = 0); signals: void testSig...
2020-09-24 15:01:53 118
原创 第74课 - 多线程间的同步
#include <QtCore/QCoreApplication>#include <QThread>#include <QDebug>/* sum(n) => 1 + 2 + 3 + ... + n sum(1000) => ? [1, 1000] = [1, 300] [301, 600] [601, 1000] */class Calculator :...
2020-09-22 16:51:08 146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人