multithreading - 一个线程有多个工作进程?
问题描述
我想知道拥有一个线程并属于该线程的一个具有多个进程的工作者的过程是什么。如果这没有太大意义,希望下面的代码应该解释:
// 工人.H //
class Worker : public QObject
{
Q_OBJECT
Public:
Worker(QObject *parent = nullptr);
Public Slots:
void process1(int x);
void process2(int y);
void process3(int z);
signals:
void sendResult(int result);
}
// 控制器.H //
class controller : public QObject
{
Q_OBJECT
public:
controller(QObject *parent = nullptr);
signals:
operate();
public slots:
void storeResults(const int);
private:
QThread myThread;
}
// CONTROLLER.CPP // 我只给出构造函数
Controller::Controller(QObject *parent) : QObject(parent)
{
Worker *worker = new Worker;
worker->moveToThread(&myThread);
//connections
connect(&myThread, &QThread::finished, worker, &QObject::deleteLater);
connect(this, &Controller::operate, worker, &Worker::process1);
connect(this, &Controller::operate, worker, &Worker::process2);
connect(this, &Controller::operate, worker, &Worker::process3);
connect(worker, &Worker::sendResult, this, &Controller::storeResult);
myThread.start();
}
我希望在这里实现的是一个系统,其中工作类中的三个进程插槽将从 GUI 的信号接收数据。这些信号将在程序的整个生命周期中不断收到。一旦接收到给定的信号,就应该对其进行处理,并将处理的结果发送到存储结果槽中。
这段代码会达到我的预期还是我忽略了什么?
非常感谢
解决方案
推荐阅读
- go - 自定义解组到一个类型而不是输入不同的类型
- typescript - 玩家在游戏完全出现之前移动人物
- linux - 在 linux 中使用 mtd 实用程序也不会刷新
- python - Odoo 12 - 在客户门户(网站)上模仿网络通知按钮和功能
- c - 不同的地方得到不同的值
- android - 如何在 Kotlin Android 中为 RecyclerView itemView 中的特定元素实现 onClickListener?
- javascript - 创建一个对给定字符串执行数学运算的函数
- report - 数据工作室报告保存在哪里?
- python - 列表的 AssertionError,但它是一个列表?这是怎么回事?
- sql - 具有相同参数的多个数据库查询的联合