死循环线程php,QObject的派生类方法实现多线程死循环问题
QObject的派生类方法实现多线程死循环问题
代码,借用dbzhang800老师的代码,我修改了点
问题
因为slot里是一个死循环函数,所以当发送 dummy.emitsig2()的时候,
slot2槽函数一直没有执行,只有第一个槽slot执行完成后,slot2槽才能执行
那么如果我想在slot里执行完i += 5;阻塞后,马上通过slot2执行i -= 10;然后得出i值为-5,
但是现在却实现不了,只有slot执行完成,才会去执行slot2,那么我该怎么办呢?
因为slot和slot2是在同一个线程里执行的,那么我怎么才能使slot2执行在与主线程和slot线程不同的线程里呢?
怎样才能实现多个线程同时修改一个变量这种方式呢?
谢谢大家
#include
#include
#include
#include
class Dummy:public QObject
{
Q_OBJECT
public:
Dummy(QObject* parent=0):QObject(parent) {}
public slots:
void emitsig()
{
emit sig();
}
void emitsig2()
{
emit sig2();
}
signals:
void sig();
void sig2();
};
class Object:public QObject
{
Q_OBJECT
public:
Object(){i = 0;}
int i;
public slots:
void slot()
{
qDebug()<
i += 5;
while(1)//死循环,阻塞线程
{
}
}
void slot2()
{
i-= 10;
qDebug()<
}
};
#include "main.moc"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug()<
QThread thread;
Object obj;
Dummy dummy;
obj.moveToThread(&thread);
QObject::connect(&dummy, SIGNAL(sig()), &obj, SLOT(slot()));
thread.start();
dummy.emitsig();
QObject::connect(&dummy, SIGNAL(sig2()), &obj, SLOT(slot2()));
dummy.emitsig2();
return a.exec();
}
死循环线程php,QObject的派生类方法实现多线程死循环问题相关推荐
- pythonpyqt5线程暂停重启时间_PyQT5 停止死循环线程(监控文件是否修改)
说明 在软件使用中,大多数需要使用多线程来实现,并且需要线程长久执行,所以就需要用到死循环,哪如何停止该死循环线程呢? 监控文件是否修改 主界面代码import sys import os from ...
- Qt 线程(06):线程和QObject【官翻】
线程和QObject 前言 QThread继承了QObject. 它发出信号以指示线程已开始执行或完成执行,并且还提供了一些插槽. 更有趣的是,QObjects可以在多个线程中使用,发出调用其他线程中 ...
- java 多线程的好处_线程多有什么好处?使用多线程的优势
线程多有什么好处?提高CPU的利用率,更好地利用系统资源,使用Monitor类可以同步静态/实例化的方法的全部代码或者部分代码段,使用不同的同步类创建自己的同步机制. 多线程指从软件或者硬件上实现多个 ...
- java线程堆栈nid.tid_java排查一个线上死循环cpu暴涨的过程分析
问题,打一个页面cpu暴涨,打开一次就涨100%,一会系统就卡的不行了. 排查方法,因为是线上的linux,没有用jvm监控工具rim链接上去. 只好用命令排查: top cpu排序,一个java进程 ...
- linux 进程死循环,Linux下如何处理一次用户态进程死循环问题
在进行Linux系统操作的时候,有时候会遇到一次用户态进程死循环,即系统反应迟钝.进程挂死等问题,那么遇到这些问题又该如何解决呢?下面小编就给大家介绍下一次用户态进程死循环的问题该如何处理. 1.问题 ...
- qt 等待线程结束_实战PyQt5: 128-使用多线程进行并行处理
多线程是实现并行处理的重要手段,在GUI编程中,经常需要将耗费任务分离,用单独的线程来处理,避免对主线程造成影响(最常见的影响就是会造成主界面无法响应的假死现象).在Qt中,最常用的多线程一般是通过继 ...
- (一)Java中的HashMap多线程死循环
1.HashMap不是线程安全的,在被多线程共享操作时,会有问题,具体什么问题呢,一直没有个清晰的理解,今天写了个测试程序调了一下,才明白其中道理. 2.主要是多线程同时put时,如果同时触发了reh ...
- python线程延时函数_详解Python 多线程 Timer定时器/延迟执行、Event事件
Timer继承子Thread类,是Thread的子类,也是线程类,具有线程的能力和特征.这个类用来定义多久执行一个函数. 它的实例是能够延迟执行目标函数的线程,在真正执行目标函数之前,都可以cance ...
- c++主线程等待子线程结束_简单明了的 Python 多线程来了 | 原力计划
作者 | 万里羊责编 | 王晓曼出品 | CSDN博客线程和进程计算机的核心是CPU,它承担了所有的计算任务,就像是一座工厂在时刻运行.如果工厂的资源有限,一次只能供一个车间来使用,也就是说当一个车间 ...
最新文章
- Javascript中闭包的作用域链
- RISC-V应用创新大赛开放报名啦!
- EventUtil.addHandler方法
- android surfaceview 大小_Android 使用Camera2 API采集视频数据
- 企业号开发php,微信企业号-开发笔记-1
- 《深入浅出DPDK》读书笔记(三):NUMA - Non Uniform Memory Architecture 非统一内存架构
- 为什么饿着饿着就不饿了
- ES(Elasticsearch)基本查询总结(含docker安装,python操作)
- python系统路径_python中os模块简单了解(系统命令和路径的获取)
- nodejs如何运行JavaScript代码
- java tbase_让java类继承TBase进行序列化
- html黑洞效果,HTML5 Canvas炫酷宇宙黑洞引力特效
- Windows 11旗舰版
- Ubuntu 图形桌面与命令行界面 切换快捷键
- Java方式实现上传微信素材
- 河北科技师范学院对口计算机分数线,河北科技师范学院对口分数线
- 数据中心运营规划的基本原则
- 非拜占庭容错共识算法
- 你心心念念的 GitHub手机版APP终于来咯
- linux创建文件内容三行,Linux 文本处理三剑客
热门文章
- python2.7 tab,自动补全
- OSChina 周二乱弹 ——无人超市的出现,未来什么最重要?
- 你真的会用Gson吗?Gson使用指南(三)
- PostgreSQL 9.5 pg_dump新特性 你是我的眼
- 设计模式--请参阅本质
- 百度BAE JAVA环境项目部署和调试
- CentOS 6.3(x86_32)下安装Oracle 10g R2
- 比Jquery FlexiGrid更好用 dotnetFlexGrid 1.2beta更新-增加展现模板模式(Grid中可以放编辑控件和任意Html内容了)...
- python 查找excel内容所在的单元格_python 根据excel单元格内容获取该单元格所在的行号...
- python程序中想使用正则表达式_如何在python中使用正则表达式提取每行中需要的信息...