- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
?QT线程(一):线程类????线程之间共享数据,但又单独执行;??? QT线程QThread是平台无关的;????通常主线程从main开始执行,而在主线程中创建其他线程,其他线程派生于QThread;?1、线程优先级总共8个优先级:线程优先级从上到下越来越高。ConstantValueDescriptionQThread::IdlePriority0scheduled only when no other threads are running.QThread::LowestPriority1scheduled less often than LowPriority.QThread::LowPriority2scheduled less often than NormalPriority.QThread::NormalPriority3the default priority of the operating system.QThread::HighPriority4scheduled more often than NormalPriority.QThread::HighestPriority5scheduled more often than HighPriority.QThread::TimeCriticalPriority6scheduled as often as possible.QThread::InheritPriority7use the same priority as the creating thread. This is the default.??2、线程管理2.1、线程启动voidstart?( Priority?priority?= InheritPriority )启动线程执行,启动后会发出started信号。??????? 2.2、线程执行intexec?()进入线程eventloop。?virtual voidrun?()线程入口。??????2.3、线程退出?voidquit?()相当于exit(0)。?voidexit?( int?returnCode?= 0 )调用exit后,thread将退出event loop,并从exec返回,exec的返回值就是returnCode。通常returnCode=0表示成功,其他值表示失败。?voidterminate?()结束线程,线程是否立即终止取决于操作系统。线程被终止时,所有等待该线程Finished的线程都将被唤醒。terminate是否调用取决于setTerminationEnabled?( bool?enabled?= true )开关。??2.4、线程等待voidmsleep?( unsigned long?msecs?)voidsleep?( unsigned long?secs?)voidusleep?( unsigned long?usecs?)boolwait?( unsigned long?time?= ULONG_MAX )线程将会被阻塞,等待time毫秒。和sleep不同的是,如果线程退出,则wait会返回。??2.4、线程状态boolisFinished?() const线程是否已退出。boolisRunning?() const线程是否还处于运行态。?2.5、线程属性Prioritypriority?() constvoidsetPriority?( Priority?priority?)voidsetStackSize?( uint?stackSize?)uintstackSize?() constvoidsetTerminationEnabled?( bool?enabled?= true )设置是否响应terminate()。???3、线程实例???当我们创建线程时,首先是从QThread派生类定义一个新的线程,然后再使用该线程时,创建该线程类的对象。????例如:class MyThread : public QThread {protected:???? void run();??????????????????? /* 重载run */ };?voidMyThread::run() {???? QTcpSocket socket;???? socket.connectToHost(hostName, portNumber);????/* 建立tcp连接 */???? exec();??????????????????? /* 进入事件循环 */ }?int main(){????? MyThread thread;??????? /* 使用新创建的thread */????? thread.st
您可能关注的文档
最近下载
- 企业采购管理蔬菜采购验收标准DOC56页.pdf VIP
- 2025年云南省中考物理试题卷(含答案解析).docx
- 体温测量软件GBT 25000.51-2016自测报告.docx VIP
- WS∕T 225-2024 临床化学检验血液标本的采集与处理.pdf
- 信息系统的使用与维护管理办法.doc VIP
- 环境影响评价报告公示大理州永平县汽车客运站环境影响评价报告表环评报告.doc VIP
- 2022年1月广东自考《07114现代物流学》试题和答案 .pdf VIP
- Unit 1 Happy Holiday(大单元教学设计)英语人教版2025八年级上册.pdf
- 2025年军队文职人员公开招录《管理学》真题库(含答案).pdf VIP
- 网络数据安全检查项及检查方法.docx VIP
文档评论(0)