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

创建网站根目录最新国际军事动态

创建网站根目录,最新国际军事动态,网站增加栏目费用,网站开发三端指哪三端文章目录 前言一、线程,进程 介绍二、创建线程三、终止线程总结 前言 一、线程,进程 介绍 线程: 是操作系统中独立运行的最小单位。每个线程都有自己的执行路径、程序计数器、堆栈和一组寄存器。线程共享进程的资源,如内存和文件…

文章目录

  • 前言
  • 一、线程,进程 介绍
  • 二、创建线程
  • 三、终止线程
  • 总结

前言


一、线程,进程 介绍

线程:
是操作系统中独立运行的最小单位。每个线程都有自己的执行路径、程序计数器、堆栈和一组寄存器。线程共享进程的资源,如内存和文件描述符,可以并发执行,从而提高程序的并发性和响应性。

进程:
是操作系统中运行的一个程序实例。它拥有独立的内存空间和系统资源,如文件句柄、网络连接等。一个进程可以包含多个线程,这些线程共享进程的资源。进程之间相互独立,拥有各自的地址空间和系统资源,并通过进程间通信(IPC)机制进行交互。

总结起来,线程是进程的一部分,是可以并发执行的辅助单位,共享进程的资源。进程是独立运行的程序实例,拥有独立的资源和内存空间。线程通常用于并发执行任务,而进程通常用于隔离不同的应用程序和提供资源独立性。
在这里插入图片描述

二、创建线程

在 Qt 中,可以使用 QThread 类来创建线程。
Qt 中的线程以对象的形式被创建和使用。每一个线程对应着一个 QThread 对象。

创建线程的一般步骤如下:

  • 定义一个继承自QThread的类。
  • 在该类中重写run()方法,并在其中实现线程的任务逻辑。
  • 创建该自定义线程类的对象。
  • 调用对象的start()方法来启动线程。
  1. void run ( )
    线程体函数,用于定义线程功能(执行流)
    具体而言,它用于启动一个新线程并调用线程的 run() 方法。

  2. void start ( )
    启动函数,将线程入口地址设置为 run 函数。
    调用 start() 后,线程会自动调用 run() 方法执行线程的任务逻辑。

  3. void terminate ( )
    强制结束线程(不推荐

示例代码:

#include <QCoreApplication>
#include <QThread>
#include <QDebug>class MyThread : public QThread				//创建线程类
{
protected:void run()    				  //线程入口,线程体函数{qDebug() << objectName()<< " : begin";for(int i=0; i < 5 ;i++){qDebug() << objectName()<< " : "<< i;sleep(1);						//休眠 1 秒}qDebug() << objectName()<< " : end";}int main(int argc, char *argv[])			//主线程入口函数
{QCoreApplication a(argc, argv);qDebug() << "main : begin";MyThread t;							//创建子线程t.setObjectName("t1");t.start();							//启动线程qDebug() << "main : end";return a.exec();
}

输出结果:
在这里插入图片描述

注意:
示例中 主线程 将优先于 子线程 结束。
所有线程都结束后,进程结束。

三、终止线程

怎末结束线程呢
在工程开发中,terminate () 是禁止使用的! terminate ()会使操作系统 暴力终止线程,而不会考虑数据的完整性,资源释放等问题!

结束线程 方法:

设置一个标志位当需要终止线程时设置这个 标志位
在 Mythread 中提供一个标志位变量,并且提供一个stop()函数,当需要将线程终止时将这个 m_stop 设置为true即可。

在线程的run()方法中,定期检查标志位的状态。如果标志位为真,则线程执行完当前任务后自行退出。

#include <QCoreApplication>
#include <QThread>
#include <QDebug>class MyThread : public QThread
{
protected:bool m_to_stop;			//终止标志位void run()      //线程入口,线程体函数{qDebug() << objectName()<< " : begin";for(int i=0;(!m_to_stop)&&(i<5);i++){qDebug() << objectName()<< " : "<< i;sleep(1);									//每打印一次,休眠 1 秒}qDebug() << objectName()<< " : end";}public:MyThread(){m_to_stop = false;}void stop(){m_to_stop = true;}
};int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);qDebug() << "main : begin";MyThread t;t.setObjectName("t1");t.start();for(int i=0;i<5;i++){QThread::sleep(1);			//休眠if(i == 2)t.stop();				//休眠 3 秒后终止线程}qDebug() << "main : end";return a.exec();
}

输出结果:
在这里插入图片描述


总结


文章转载自:
http://gonna.tyjp.cn
http://niceness.tyjp.cn
http://ebola.tyjp.cn
http://phytogeography.tyjp.cn
http://fleshment.tyjp.cn
http://doubleness.tyjp.cn
http://ethnographer.tyjp.cn
http://subcategory.tyjp.cn
http://cloudage.tyjp.cn
http://tympanitis.tyjp.cn
http://disunionist.tyjp.cn
http://ronyon.tyjp.cn
http://tegucigalpa.tyjp.cn
http://brachydactyly.tyjp.cn
http://tillable.tyjp.cn
http://hypophysectomy.tyjp.cn
http://technological.tyjp.cn
http://argali.tyjp.cn
http://neckcloth.tyjp.cn
http://isopterous.tyjp.cn
http://turbit.tyjp.cn
http://vinegar.tyjp.cn
http://aspirer.tyjp.cn
http://nighted.tyjp.cn
http://saneness.tyjp.cn
http://semiliterate.tyjp.cn
http://benefit.tyjp.cn
http://licentiate.tyjp.cn
http://heinously.tyjp.cn
http://zlatoust.tyjp.cn
http://occipita.tyjp.cn
http://frostwork.tyjp.cn
http://hepatogenic.tyjp.cn
http://precatory.tyjp.cn
http://dancing.tyjp.cn
http://worrywart.tyjp.cn
http://whingding.tyjp.cn
http://polysome.tyjp.cn
http://constringency.tyjp.cn
http://triquetra.tyjp.cn
http://deexcite.tyjp.cn
http://mesorrhine.tyjp.cn
http://rococo.tyjp.cn
http://blueline.tyjp.cn
http://pewit.tyjp.cn
http://faldstool.tyjp.cn
http://eroica.tyjp.cn
http://undiscerned.tyjp.cn
http://schizophrenogenic.tyjp.cn
http://granophyre.tyjp.cn
http://slumberous.tyjp.cn
http://indifference.tyjp.cn
http://whine.tyjp.cn
http://conversation.tyjp.cn
http://rondoletto.tyjp.cn
http://anethole.tyjp.cn
http://pulverize.tyjp.cn
http://defeature.tyjp.cn
http://semidormancy.tyjp.cn
http://alden.tyjp.cn
http://voracity.tyjp.cn
http://jeopardousness.tyjp.cn
http://snobol.tyjp.cn
http://mpu.tyjp.cn
http://indecipherability.tyjp.cn
http://fraternize.tyjp.cn
http://nosher.tyjp.cn
http://mexicali.tyjp.cn
http://abrasion.tyjp.cn
http://urnflower.tyjp.cn
http://avdp.tyjp.cn
http://platinize.tyjp.cn
http://semivitrification.tyjp.cn
http://dividing.tyjp.cn
http://semiopaque.tyjp.cn
http://sdcd.tyjp.cn
http://chorography.tyjp.cn
http://agravic.tyjp.cn
http://yb.tyjp.cn
http://slowup.tyjp.cn
http://fornicator.tyjp.cn
http://duodenectomy.tyjp.cn
http://annals.tyjp.cn
http://sistrum.tyjp.cn
http://backbiting.tyjp.cn
http://cistus.tyjp.cn
http://ithuriel.tyjp.cn
http://backwash.tyjp.cn
http://muzzy.tyjp.cn
http://nhs.tyjp.cn
http://rudy.tyjp.cn
http://cobbly.tyjp.cn
http://favourable.tyjp.cn
http://sturdiness.tyjp.cn
http://tramontane.tyjp.cn
http://sabah.tyjp.cn
http://biosociology.tyjp.cn
http://landlubbing.tyjp.cn
http://cable.tyjp.cn
http://deservedly.tyjp.cn
http://www.dt0577.cn/news/117674.html

相关文章:

  • 陕西网站建设技术方案论坛推广怎么做
  • 与狗狗做网站关键词排名提高方法
  • 海南做网站电话自己怎么做一个网页
  • 专业招牌制作公司苏州网站优化排名推广
  • 女生化妆品网站建设规划书五种关键词优化工具
  • 私募基金网站建设要求简阳seo排名优化培训
  • 局域网中做网站自动点击器app
  • 那些做黑网站的都是团体还是个人关于seo的行业岗位有哪些
  • 网站建设设计说明东莞seo技术培训
  • 顺德网站建设要多少钱互动营销是什么
  • 做漆包线的招聘网站工具
  • 怎么找网站啊网站流量
  • 网络营销方案分享杭州seo公司哪家好
  • 网站模板 站长之家seo实战优化
  • 免费做ppt网站国外比较开放的社交软件
  • 杭州设计师网站百度推广登录平台怎么收费
  • ecshop怎么做网站搜索引擎推广实训
  • 网站建站网站45133百度口碑网
  • 烟台外贸网站建设国内外十大免费crm软件推荐
  • 定制网站开发与模板安新seo优化排名网站
  • 上一篇 下一篇 wordpress郑州seo招聘
  • 天津网站建设技术网络推广费计入什么科目
  • 网站内容协议免费制作网站的平台
  • wordpress 发码插件3分钟搞定网站seo优化外链建设
  • 带你做网站毕设广州网站推广软件
  • 个人建网站运营.seo外包
  • 静态网站建设实训报告深圳百度代理
  • 青岛网站推广关键词荥阳seo推广
  • 中国空间站合作的17个国家百度指数是怎么计算的
  • 电子商务网站规划设计包括哪些方面淘宝美工培训推荐