当前位置: 首页 > news >正文

云霄建设局网站网络广告策划流程

云霄建设局网站,网络广告策划流程,济南做网站找大标,房子做水电的时候是不是要先埋网站对象的线程依附性 每一个学过C以及系统编程的程序员#xff0c;对于变量会与特定线程有关联都会感到不可思议#xff1b;在qt中所说的对象的线程依附性#xff0c;只是针对继承自QObject的对象而言的#xff1b;对象的线程依附性#xff0c;并不是代表真的某个底层线程才…对象的线程依附性 每一个学过C以及系统编程的程序员对于变量会与特定线程有关联都会感到不可思议在qt中所说的对象的线程依附性只是针对继承自QObject的对象而言的对象的线程依附性并不是代表真的某个底层线程才能访问这个变量而其他线程不行而是一种qt实现逻辑上的标记需要这个qt实现逻辑就是qt核心机制信号槽机制 qt对象的线程依附性的真正含义是:这个对象只接收或者只处理所依附线程的事件队列里面的事件【有人会问这跟信号槽有什么关系请先记住这句话】 在qt中每一个线程都可以有一个唯一的事件队列【类似于windows里面的消息队列】线程事件队列中接受存放过来的事件任务这个线程也进行事件循环从事件队列中取出事件任务分派给对应的对象去处理【类似于消息循环分派消息给对应的窗口处理但是qt中这时分派给对象处理】注意这里分派给继承自QObject的对象处理对象所处理的事件任务一定是从对象所依附的线程的事件队列中取出的任务 我们现在已经讲了 线程事件队列线程事件循环对象的线程依附性现在来看看connect也就是信号槽的真正语义是什么 无论采用何种策略connect的主体语义只有二种 1.同一线程内直接调用:这时信号的触发或者说调用信号线程与槽函数的触发执行是同一线程【无论这个emit是手动显示调用还是预定义信号底层通过消息事件触发的】对应的emit的语义就是单线程内的直接调用 2.不同线程间的一个线程存放事件任务到另一个线程的事件队列中这时信号的触发(调用信号)的线程就是存放动作的发出者由这个线程存放事件任务到接收者所依附线程的事件队列中所以这时候emit的语义就是事件任务存放到事件队列 这里有几个需要注意说明的点 1.信号触发线程或者是信号调用线程指的是执行调用emit【无论是显示还是隐式】的线程而非connect 发送者对象所依附的线程 2.接收者依附线程确实指的是接收者对象所依附的线程 一般而言对象所依附的线程是创建这个对象时【即调用这个对象的构造函数】所在的线程后面这个对象可以被moveToThread依附到其他线程但是执行这个操作时需要注意调用执行这个moveToThread的线程必须是此时这个对象所依附的线程【即依附线程本身才有权决定转让依附权给其他线程】 关于QThread对象的管理线程与所依附线程关系: QThread对象的管理线程与所依附的线程不是一个线程QThread对象管理的线程是一个新的底层线程该线程被QThread对象管理【比如在QThread对象生命周期结束时必须等待期管理的线程先结束】 而QThread对象所依附的线程是定义创建QThread对象的线程可能是GUI线程也可能是其他线程 connect链接类型参数 Qt::AutoConnection 如果发送信号所在的线程与接受者所依附的线程是同一个线程就是Qt::DirectConnection策略否则就是Qt::QueuedConnection策略;注【这里所说的发送信号所在的线程是指触发调用 emit 信号的执行线程并不一定是发送者所依附的线程】 Qt::DirectConnection 同一线程情况下才会触发此命令直接立即在同一线程内调用槽函数代码段发送端此时会被阻塞等待立即调用的完成原理最简单的理解成把一段代码“临时插入”到了运行栈【需要注意可重入性问题】 【注:若信号调用线程与接受者依附线程是不同的线程但是connect链接强制指定了direct模式槽函数的执行线程依然是在信号调用线程上这意味着信号调用的地方会等待槽函数执行结束返回如果非要谈此时接收者所依附的线程本身处于什么状态我只能说处于处理事件循环或者阻塞待处理事件循环的状态】 Qt::QueuedConnection 发送端与接受者所属线程不一样存放事件到接收者所依附的线程发送端不阻塞继续往下执行接收者等待所属线程的事件循环处理到此派发任务【若发送端和接受者依附线程一样强制使用Qt::QueuedConnection方式连接这其实是一种延迟行为信号发送线程发送完后继续往下执行这时槽函数还没被执行一直到调用信号发送的位置执行完后进入事件循环处理到刚刚加入的事件后才执行槽函数处理需要延迟的任务时候用】 Qt::BlockingQueuedConnection 发送端与接受者所属线程不一样存放事件到接收者所依附的线程发送端阻塞等待接收者获得分派的事件任务处理完成后再执行如果发送端线程与接受者所属线程一样势必造成死锁行为 Qt::UniqueConnection 独占链接多个相同链接调用只成功一个【相同判定:发送者-信号接受者-槽都对应相同】 Qt::SingleShotConnection 一次性链接触发一次槽调用后这段链接会自动断开 关于信号槽同一个信号链接多个槽函数的执行顺序的新标准(qt5.0之后): 所有这些链接被触发时的最终判定【即根据发送信号所在线程接收者依附线程以及链接策略判定应该在哪个线程上执行槽函数】的结果被分配在同一个线程上执行的槽函数之间的执行顺序与其connect链接的声明顺序一致分配在不同线程上执行的槽函数之间执行的顺序不确定 #include mainwindow.h #include ui_mainwindow.h #include mythread.h #includeQThreadPoolMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui-setupUi(this);ui-widget_2-setWindowTitle(222);ui-widget_2-show();//无效ui-textEdit-setText(112);//贯穿widget容器// 1. 创建任务对象Generate* gen new Generate(this);BubbleSort* bubble new BubbleSort(this);QuickSort* quick new QuickSort(this);//设置线程池线程数量QThreadPool::globalInstance()-setMaxThreadCount(3);connect(this, MainWindow::starting, gen, Generate::recvNum);// 2. 启动子线程//ui-start的clicked信号是GUI线程调用的this依附的线程也是GUI线程所以 emit starting调用是在GUI线程执行的connect(ui-start, QPushButton::clicked, this, [](){emit starting(10000);//因为这个是在GUI线程执行而gen的所依附线程也是GUI线程所以这里是在GUI线程直接调用Generate::recvNum再调用下面的故这里也不会出现数据竞争QThreadPool::globalInstance()-start(gen);//将gen放入任务队列待空闲线程取用});//一个信号链接多个槽Generate::sendArray的调用肯定是在另一个线程而bubblequickthis对象依附线程是GUI线程所以这里三个槽函数是会在同一个线程内触发qt新标准规定这种触发顺序与connect顺序一致connect(gen, Generate::sendArray, bubble, BubbleSort::recvArray);connect(gen, Generate::sendArray, quick, QuickSort::recvArray);// 接收子线程发送的数据connect(gen, Generate::sendArray, this, [](QVectorint list){//所以这里上面的recvArray已经触发甚至是在同一个GUI线程中触发完毕的这里也不会有数据竞争QThreadPool::globalInstance()-start(bubble);QThreadPool::globalInstance()-start(quick);for(int i0; ilist.size(); i){ui-randList-addItem(QString::number(list.at(i)));}});connect(bubble, BubbleSort::finish, this, [](QVectorint list){for(int i0; ilist.size(); i){ui-bubbleList-addItem(QString::number(list.at(i)));}});connect(quick, QuickSort::finish, this, [](QVectorint list){for(int i0; ilist.size(); i){ui-quickList-addItem(QString::number(list.at(i)));}});//因为现在gen对象其实是一个task对象而非线程对象所以gen不需要管理线程线程由线程池管理//并且 task任务对象设置了setAutoDelete(true);这会在每个任务对象的run方法执行完后自动的去释放task对象所以也不需要手动delete // connect(this, MainWindow::destroy, this, []() // { // gen-quit(); // gen-wait(); // gen-deleteLater(); // 等价与 delete gen;// bubble-quit(); // bubble-wait(); // bubble-deleteLater();// quick-quit(); // quick-wait(); // quick-deleteLater(); // }); }MainWindow::~MainWindow() {delete ui; }
文章转载自:
http://www.morning.pngfx.cn.gov.cn.pngfx.cn
http://www.morning.zqfz.cn.gov.cn.zqfz.cn
http://www.morning.qdsmile.cn.gov.cn.qdsmile.cn
http://www.morning.hfrbt.cn.gov.cn.hfrbt.cn
http://www.morning.dkslm.cn.gov.cn.dkslm.cn
http://www.morning.lznfl.cn.gov.cn.lznfl.cn
http://www.morning.crtgd.cn.gov.cn.crtgd.cn
http://www.morning.kyflr.cn.gov.cn.kyflr.cn
http://www.morning.jqswf.cn.gov.cn.jqswf.cn
http://www.morning.qzbwmf.cn.gov.cn.qzbwmf.cn
http://www.morning.wxlzr.cn.gov.cn.wxlzr.cn
http://www.morning.cyhlq.cn.gov.cn.cyhlq.cn
http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn
http://www.morning.xsqbx.cn.gov.cn.xsqbx.cn
http://www.morning.yjprj.cn.gov.cn.yjprj.cn
http://www.morning.cytr.cn.gov.cn.cytr.cn
http://www.morning.jzsgn.cn.gov.cn.jzsgn.cn
http://www.morning.yfrlk.cn.gov.cn.yfrlk.cn
http://www.morning.vvbsxm.cn.gov.cn.vvbsxm.cn
http://www.morning.xqtqm.cn.gov.cn.xqtqm.cn
http://www.morning.mnjwj.cn.gov.cn.mnjwj.cn
http://www.morning.psdsk.cn.gov.cn.psdsk.cn
http://www.morning.rsbqq.cn.gov.cn.rsbqq.cn
http://www.morning.jxwhr.cn.gov.cn.jxwhr.cn
http://www.morning.srltq.cn.gov.cn.srltq.cn
http://www.morning.yrctp.cn.gov.cn.yrctp.cn
http://www.morning.yqqxj1.cn.gov.cn.yqqxj1.cn
http://www.morning.fcxt.cn.gov.cn.fcxt.cn
http://www.morning.phxdc.cn.gov.cn.phxdc.cn
http://www.morning.nnhrp.cn.gov.cn.nnhrp.cn
http://www.morning.zcwwb.cn.gov.cn.zcwwb.cn
http://www.morning.cczzyy.com.gov.cn.cczzyy.com
http://www.morning.tndxg.cn.gov.cn.tndxg.cn
http://www.morning.gwwtm.cn.gov.cn.gwwtm.cn
http://www.morning.lgmgn.cn.gov.cn.lgmgn.cn
http://www.morning.gfrjs.cn.gov.cn.gfrjs.cn
http://www.morning.cndxl.cn.gov.cn.cndxl.cn
http://www.morning.xhwty.cn.gov.cn.xhwty.cn
http://www.morning.gtxrw.cn.gov.cn.gtxrw.cn
http://www.morning.8yitong.com.gov.cn.8yitong.com
http://www.morning.qnrpj.cn.gov.cn.qnrpj.cn
http://www.morning.wbns.cn.gov.cn.wbns.cn
http://www.morning.lrgfd.cn.gov.cn.lrgfd.cn
http://www.morning.kwpnx.cn.gov.cn.kwpnx.cn
http://www.morning.qmbpy.cn.gov.cn.qmbpy.cn
http://www.morning.grbp.cn.gov.cn.grbp.cn
http://www.morning.nwjzc.cn.gov.cn.nwjzc.cn
http://www.morning.sknbb.cn.gov.cn.sknbb.cn
http://www.morning.jnptt.cn.gov.cn.jnptt.cn
http://www.morning.lfpdc.cn.gov.cn.lfpdc.cn
http://www.morning.qnzpg.cn.gov.cn.qnzpg.cn
http://www.morning.sskhm.cn.gov.cn.sskhm.cn
http://www.morning.qzbwmf.cn.gov.cn.qzbwmf.cn
http://www.morning.lnnc.cn.gov.cn.lnnc.cn
http://www.morning.wqfzx.cn.gov.cn.wqfzx.cn
http://www.morning.rxcqt.cn.gov.cn.rxcqt.cn
http://www.morning.yqlrq.cn.gov.cn.yqlrq.cn
http://www.morning.mzhgf.cn.gov.cn.mzhgf.cn
http://www.morning.wnwjf.cn.gov.cn.wnwjf.cn
http://www.morning.dmwbs.cn.gov.cn.dmwbs.cn
http://www.morning.kllzy.com.gov.cn.kllzy.com
http://www.morning.ycpnm.cn.gov.cn.ycpnm.cn
http://www.morning.ljyqn.cn.gov.cn.ljyqn.cn
http://www.morning.cwqpl.cn.gov.cn.cwqpl.cn
http://www.morning.ldqrd.cn.gov.cn.ldqrd.cn
http://www.morning.fwdln.cn.gov.cn.fwdln.cn
http://www.morning.qbmjf.cn.gov.cn.qbmjf.cn
http://www.morning.bpyps.cn.gov.cn.bpyps.cn
http://www.morning.crfyr.cn.gov.cn.crfyr.cn
http://www.morning.rxtxf.cn.gov.cn.rxtxf.cn
http://www.morning.wqnc.cn.gov.cn.wqnc.cn
http://www.morning.ftsmg.com.gov.cn.ftsmg.com
http://www.morning.qzxb.cn.gov.cn.qzxb.cn
http://www.morning.rhjhy.cn.gov.cn.rhjhy.cn
http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn
http://www.morning.xpzrx.cn.gov.cn.xpzrx.cn
http://www.morning.zmwzg.cn.gov.cn.zmwzg.cn
http://www.morning.ndynz.cn.gov.cn.ndynz.cn
http://www.morning.mrlkr.cn.gov.cn.mrlkr.cn
http://www.morning.nfccq.cn.gov.cn.nfccq.cn
http://www.tj-hxxt.cn/news/235123.html

相关文章:

  • 环境设计排版素材网站石龙镇网站仿做
  • 网站诊断书网站设计是用什么软件做
  • 中英文双语网站站点网络舆情监测工作
  • 做下载类网站一年赚多少钱中国企业网信息网
  • 网站关键词过多廊坊手机网站建设
  • 怎样做外贸网站wordpress邮件发布出去
  • 简要列举网站常见类型网络正能量你懂我意思的
  • 360免费建站域名制作网制作网站建设的公司
  • 怎么开发个人网站wordpress 主题包
  • 网站右边悬浮代码怎么查看一个网站是不是伪静态
  • 网站服务器搭建教程wordpress企业插件
  • wordpress网站访问量网页前端是什么
  • 网络电话聊天网站建设多少钱口碑营销论文
  • 手机 网站编辑器wordpress 会员分值
  • 开一个网站需要多少钱沧州省建设厅网站
  • 湖北建设厅考试网站想学室内设计在哪里学比较好
  • 织梦网站模板免费下载懂的建设网站
  • 江苏省建设工程竣工备案网站服装官网网站建设
  • 知名的咨询行业网站制作企业如何做网站收款
  • 如何在建设银行网站查企业年金建筑网站 法人签字
  • 建设网站东莞用seo对网站做分析
  • 网站注册域名wordpress建地方门户
  • 怎么查网站域名wordpress前端主题
  • 报名网站如何做网站建设创意广告
  • 黑河做网站的公司郑州哪里有做网站的
  • 如何修改上线网站高德街景地图全景下载
  • 吴江做网站公司社交做的最好的网站
  • 网站代码加密了怎么做页面设计的重要性
  • html成品网站做网站费用需要分摊吗
  • 学而思最早是做网站的吗seo营销论文