死循环线程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,它承担了所有的计算任务,就像是一座工厂在时刻运行.如果工厂的资源有限,一次只能供一个车间来使用,也就是说当一个车间 ...
最新文章
- ubuntu15.10安装wireshark
- 《虚拟化和云计算》实验报告——MININET实践SDN
- Elasticsearch启动报错:Exception in thread “main“ java.nio.file.AccessDeniedException:
- 【算法】平衡二叉树 Avl 树
- c语言程序设计 周信东 数组,c语言程序设计周信东数组
- STL 算法接口及用法说明 (二)
- Tensorflow学习笔记:使用线性回归进行简单分类
- NYOJ题目36-最长公共子序列(经典动态规划题)
- python画航线图_pyecharts绘制geo地图
- php 扫描条形码,将条形码扫描仪集成到PHP应用程序中?
- ROS学习(9)自定义移动机器人模型Gazebo仿真
- 智能名片小程序创建名片页的表单校验使用正则表达式整理
- 安装BiocManager显示Warning in install.packages : package ‘BiocManager’ is not available for this version
- xp开机黑屏故障分析
- 媒体应用视频超分AI神器!360P视频一键转换HD
- SpringInAction第三章学习笔记:Spring高级装配
- PDPS软件:机器人最佳布局位置自动选择功能介绍与使用方法
- 2022-2027年中国肺炎疫苗行业市场运行现状及投资战略研究报告
- 一摞python风格的纸牌(fluent python阅读)
- C#/Winform 节点拖放-TreeView控件