随笔分类 -  Qt-Thread

摘要:协程也就在I/O操作上才有优势,Qt事件循环,本事很多I/O已经是异步了,利用好异步(虽然都说异步有点反人类思维)。因为CPU的执行最小单位是线程,协程也只是在其之上又调度而已。 我的意思是利用好异步的优势。协程是程序级别的调度,对于CPU执行来说,没任何优势的。 CPU的最小执行单位是线程,单线程 阅读全文
posted @ 2017-01-26 19:33 findumars 阅读(1378) 评论(0) 推荐(0) 编辑
摘要:https://github.com/openwebos/qt/blob/master/src/corelib/thread/qthread.cpp 阅读全文
posted @ 2017-01-17 21:33 findumars 阅读(927) 评论(0) 推荐(0) 编辑
摘要:Qt 线程基础(QThread、QtConcurrent等) 转载自:http://blog.csdn.net/dbzhang800/article/details/6554104 昨晚看Qt的Manual,突然发现下一个版本的Qt中(Qt4.7.4、Qt4.8等)增加了一个特赞的介绍多线程的文章 阅读全文
posted @ 2017-01-08 23:29 findumars 阅读(762) 评论(0) 推荐(0) 编辑
摘要:的dddd 阅读全文
posted @ 2017-01-08 23:27 findumars 阅读(263) 评论(0) 推荐(0) 编辑
摘要:在Qt中并没有Sleep函数可以调用,在程序编写时往往需要休眠几秒,这里举出两个方法,不知道是否啥不良隐患没~~ 方法一: class SleeperThread : public QThread{public: static void msleep(unsigned long msecs) { Q 阅读全文
posted @ 2017-01-04 23:50 findumars 阅读(14844) 评论(0) 推荐(0) 编辑
摘要:使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的。 Qt 线程间共享数据是本文介绍的内容,多的不说,先来啃内容。Qt线程间共享数据主要有两种方式: 使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都 阅读全文
posted @ 2016-12-10 00:22 findumars 阅读(9877) 评论(0) 推荐(0) 编辑
摘要:可以通过QThread实现跨平台的多线程开发,Qt库负责在特定平台上的特定多线程实现。要采用QThread进行多线程开发,首先需要包含头文件: #include <QThread> 然后需要从QThread继承一个自己的线程类,暂作MyThread,关键是要实现QThread内的一个虚函数run。在 阅读全文
posted @ 2016-12-10 00:02 findumars 阅读(7463) 评论(0) 推荐(0) 编辑
摘要:如果一个线程运行完成,就会结束。可很多情况并非这么简单,由于某种特殊原因,当线程还未执行完时,我们就想中止它。不恰当的中止往往会引起一些未知错误。比如:当关闭主界面的时候,很有可能次线程正在运行,这时,就会出现如下提示:QThread: Destroyed while thread is still 阅读全文
posted @ 2016-11-07 19:57 findumars 阅读(3559) 评论(0) 推荐(0) 编辑
摘要:传统的图形界面应用程序都只有一个线程执行,并且一次执行一个操作。如果用户调用一个比较耗时的操作,就会冻结界面响应。 一个解决方法是按照事件处理的思路: 调用 Void QApplication::processEvents() 或 void QApplication::processEvents ( 阅读全文
posted @ 2016-10-31 23:01 findumars 阅读(9691) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/u011012932/article/details/52943811 阅读全文
posted @ 2016-10-28 22:16 findumars 阅读(942) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>#include <QApplication>#include <QThread>#include <QString> class Thread : public QThread {public: Thread(QString name = "") { stop 阅读全文
posted @ 2016-10-19 23:28 findumars 阅读(3882) 评论(0) 推荐(0) 编辑
摘要:最近经常听到这个名词,以前也听到过,不过接触更多的是“线程安全问题”,而且本人也一直理解的是两个名字的含义是一样的。今天仔细总结一下这个名词相关的概念。 引用博文:可重入函数和不可重入函数 (http://www.cppblog.com/franksunny/archive/2007/08/03/2 阅读全文
posted @ 2016-10-18 17:33 findumars 阅读(658) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/u011012932/article/details/51029602http://blog.csdn.net/u011012932/article/details/51029511http://blog.csdn.net/u011012932/articl 阅读全文
posted @ 2016-10-14 22:16 findumars 阅读(6317) 评论(0) 推荐(0) 编辑
摘要:可重入与线程安全 在Qt文档中,术语“可重入”与“线程安全”被用来说明一个函数如何用于多线程程序。假如一个类的任何函数在此类的多个不同的实例上,可以被多个线程同时调用,那么这个类被称为是“可重入”的。假如不同的线程作用在同一个实例上仍可以正常工作,那么称之为“线程安全”的。 大多数c++类天生就是可 阅读全文
posted @ 2016-09-04 05:38 findumars 阅读(1719) 评论(0) 推荐(0) 编辑
摘要:在线程中定义一个信号量: QMutex pause;把run()函数中循环执行的部分用信号量pause锁住: void run() { while(1) { pause.lock(); //循环执行的内容,比如视频播放 pause.unlock(); } } 在主线程(UI线程)中,如果想暂停线程执 阅读全文
posted @ 2016-09-04 05:32 findumars 阅读(3639) 评论(0) 推荐(0) 编辑
摘要:注意:本次实现线程的暂停执行主要采用互斥量的方法,如果有更好的实现方法的小伙伴可以在下面留言! 直接插入代码了,由于做的小demo,代码写的可能有点乱,但还算完整。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 阅读全文
posted @ 2016-08-27 16:42 findumars 阅读(7078) 评论(0) 推荐(0) 编辑
摘要:介绍 You’re doing it wrong. — Bradley T. Hughes 线程是qt channel里最流行的讨论话题之一。许多人加入了讨论并询问如何解决他们在运行跨线程编程时所遇到的问题。 快速检阅一下他们的代码,在发现的问题当中,十之八九遇到得最大问题是他们在某个地方使用了线程 阅读全文
posted @ 2016-08-25 00:06 findumars 阅读(1855) 评论(0) 推荐(0) 编辑
摘要:后面这种方法可以不影响其他线程的响应,又可以达到等待的目的。 测试的一个小例子: [cpp] view plain copy class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = 0); ~Widget() 阅读全文
posted @ 2016-08-24 23:51 findumars 阅读(3773) 评论(0) 推荐(0) 编辑
摘要:结果:恩,slot确实不在主线程中运行(这么简单不值得欢呼么?) 阅读全文
posted @ 2016-08-24 22:45 findumars 阅读(8998) 评论(0) 推荐(0) 编辑
摘要:QT通过三种形式提供了对线程的支持。它们分别是,一、平台无关的线程类,二、线程安全的事件投递,三、跨线程的信号-槽连接。这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势。多线程编程也是一个有用的模式,它用于解决执行较长时间的操作而不至于用户界面失去响应。在Qt的早期版本中,在构 阅读全文
posted @ 2016-08-24 21:12 findumars 阅读(1243) 评论(0) 推荐(0) 编辑