![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT/线程进程
imxiangzi
这个作者很懒,什么都没留下…
展开
-
QT 线程池 + TCP 小试(一)线程池的简单实现
*免分资源链接点击打开链接http://download.csdn.net/detail/goldenhawking/4492378 很久以前做过ACE + MFC/QT 的中轻量级线程池应用,大概就是利用线程池执行客户机上的运算需求,将结果返回。ACE是跨平台重量级的通信中间件,与常见的应用程序框架需要精心契合,才能不出问题。最近想到既然QT框架本身就已经具有各类功能,何不玩一玩呢转载 2016-09-13 11:59:50 · 657 阅读 · 0 评论 -
Qt 学习之路:线程和 QObject
前面两个章节我们从事件循环和线程类库两个角度阐述有关线程的问题。本章我们将深入线程间得交互,探讨线程和QObject之间的关系。在某种程度上,这才是多线程编程真正需要注意的问题。 现在我们已经讨论过事件循环。我们说,每一个 Qt 应用程序至少有一个事件循环,就是调用了QCoreApplication::exec()的那个事件循环。不过,QThread也可以开启事件循环。只不过这是一个受限于...转载 2018-12-30 08:42:13 · 534 阅读 · 0 评论 -
QThread定时器
如何在子线程中启动定时器: MyThread::MyThread(QObject *parent) : QThread(parent){ printf("[%d] construct\n",this->currentThreadId());}MyThread::~MyThread(){ delete timer;}void MyThread::timedone...转载 2018-12-30 08:41:13 · 1124 阅读 · 0 评论 -
Qt技巧:QProcess与外部程序的调用
项目做到一定阶段,常常须要在原来的project上调用外部程序。Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信。一、启动外部程序的两种方式:(1)一体式:void QProcess::start(const QString & program, const QStringList & arguments, OpenMode转载 2017-11-05 08:28:43 · 693 阅读 · 0 评论 -
Qt线程的简单使用(三)——通过一个实例理解QMutex的使用
参考资料:实例来源 Qt编程快速入门Qt帮助手册关于QMutex、QThread等首先先看一个示例,(示例程序来自,Qt编程快速入门,我做了一些修改)。效果图如下,程序开启了三个绘图线程分别往QImage上绘制三角形、圆和矩形。主程序中开启了一个定时器,会定时将图片清空。除此主程序的paintEvent事件中,将这个图片通过QPainter绘制显示出来。在绘图线程中,当对QImage转载 2017-08-27 15:39:11 · 533 阅读 · 0 评论 -
QT多线程的设计(imxiangzi总结)
1. 不使用事件循环。这是官方的 Manual 、example 以及相关书籍中都介绍的一种的方法。 a. 子类化 QThreadb. 重载 run 函数,run函数内有一个 while 或 for 的死循环c. 设置一个标记为来控制死循环的退出。void run(){ while(bRun)//如果需要退出线程转载 2017-08-22 18:31:32 · 433 阅读 · 0 评论 -
moveToThread的最简单用法(依葫芦画瓢即可)(使得线程也更偏向于信号槽的使用方法)
/*!* \file main.cpp** Copyright (C) 2010, dbzhang800* All rights reserved.**/#include #include #include #include class Dummy:public QObject { Q_OBJECT public: Dummy(QObjec转载 2017-08-22 17:14:41 · 1742 阅读 · 0 评论 -
QThread使用——关于run和movetoThread的区别
注意:本文停止更新,请优先考虑 Qt 线程基础(QThread、QtConcurrent等)dbzhang800 2011.06.18QThread 似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者本人往往不知道)在用不恰当(甚至错误)的方式在使用 QThread,随便用google一搜,就能搜出大量结果出来。无怪乎Qt的开发人员 Bradley T. Hughes转载 2017-08-22 17:13:38 · 418 阅读 · 0 评论 -
Qt 调用外部exe的方法
近期做个快捷菜单,需要调用外部.exe应用程序。调用外部应用程序时分为阻塞和非阻塞,这里采用非阻塞,因为想调用哪个程序就调用哪个程序嘛。方法如下:使用Qprocess的startDetached()方法,当前程序关闭时,调用的外部程序能够照常运行。#include QProcess::startDetached("E转载 2017-08-21 09:54:52 · 17480 阅读 · 1 评论 -
Qt程序只运行一个实例
#include QSharedMemory shared("name");//随便填个名字就行if (shared.attach()){ return 0;}shared.create(1);在main函数中加入以上代码,Qt生成的exe程序就只能启动一次了。http://blog.csdn.net/caoshangpa/articl转载 2017-08-21 09:50:29 · 462 阅读 · 0 评论 -
QThreadPool类和QtConcurrent命名空间
一、QThreadPool类 QThreadPool管理一组线程。它负责管理和回收单个QThread对象以减少程序中线程创建的开销。每个Qt应用程序都有一个全局的QThreadPool对象,可通过方法globalInstance()获得。为了调用QThreadPool中的一个线程,需要提供一个从QRunnable继承过来的类,并实现其中的run方法。然后创建一个该类的对象,传递给QThr转载 2016-09-15 18:41:08 · 471 阅读 · 0 评论 -
一种基于Qt的可伸缩的全异步C/S架构服务器实现(一) 综述
本文向大家介绍一种基于Qt的伸缩TCP服务实现。该实现针对C/S客户端-服务集群应用需求而搭建。连接监听、数据传输、数据处理均在独立的线程池中进行,根据特定任务不同,可安排负责监听、传输、处理的线程数目,从而在高传输负荷、高计算符合上达成取舍。数据处理采用流水线结构,以避免少量客户的密集计算请求影响其他客户端的处理。本文对应的代码符合LGPL协议,可直接从https://github.com/go转载 2016-09-13 12:06:03 · 1111 阅读 · 0 评论 -
QT线程池实验研究与分析(QThread与和QThreadPool + QRunnable使用上的区别)
第一部分:QT线程池的构建与使用 网上关于QT线程池QThreadPool的文章很多,而且大都千篇一律,基本上都是参考QT的帮助文档介绍QT全局线程池的用法。这样就往往会使人产生误解,QT是不是推荐大家使用其全局线程池,而不推荐使用自定义构造的线程池? 实际情况并不是这样的。而且在实际的项目当中我们通常并不希望仅仅使用一个全局的线程池,而是在需要线程池的工程中都构建和维护自己一个小小的线转载 2016-09-13 12:04:03 · 2141 阅读 · 0 评论 -
QT 线程池 + TCP 小试(三)实现最终功能
*免分资源链接点击打开链接http://download.csdn.net/detail/goldenhawking/4492378 有了TCP、线程池,我们就可以把他们连接起来。使用最简单的 QMainWindow吧,设计个UI,而后,创建我们的线程池、Service,并把TcpService 的数据接收信号与线程池的数据处理信号连接起来。 为了模拟处理任务,我们转载 2016-09-13 12:02:56 · 764 阅读 · 0 评论 -
QT 线程池 + TCP 小试(二)实现通信功能
*免分资源链接点击打开链接http://download.csdn.net/detail/goldenhawking/4492378 有了线程池,我们下一步就利用 QTcpServer 搭建一个服务器,接受客户端的连接,并把数据发送到线程池上。由于 QTcpServer 资料太多了,这里不在赘述。唯一值得注意的是,当客户端退出时,如果线程池队列中还有该客户的信息,这个信息还会被处转载 2016-09-13 12:00:59 · 854 阅读 · 0 评论 -
Qt使用多线程的一些心得——2.继承QObject的多线程使用方法
现在Qt官方并不是很推荐继承QThread来实现多线程方法,而是极力推崇继承QObject的方法来实现,当然用哪个方法实现要视情况而定,别弄错了就行,估计Qt如此推崇继承QObject的方法可能是QThread太容易用错的原因。继承QThread实现多线程的方法点此1. 前言上一篇介绍了传统的多线程使用方法——继承QThread来实现多线程,这也是很多框架的做法(MFC),但Qt还有一种...转载 2018-12-30 08:43:16 · 517 阅读 · 0 评论