Windows主线程和子线程的关系

在Windows下最重要的两个概念,一个是进程,一个是线程。

先来说下进程和线程的关系,进程是静态的,它相当于一个存放数据的空间,是放在内存中的,可以理解为一个工厂。而线程是动态来执行线程中的代码的,相当于工厂中的工人。看到执行代码你可能就会想到CPU了,没错,线程就是存在于CPU上的。

每个进程必须要包含一个线程。这句话怎么理解了,工厂中没工人干活,那么工厂不就等于于一个废物?它有存在的意义吗。。~!!!没有。。。。   所以每个进程必须有一个主线程,而且最少会有一个线程。线程和进程是相对独立的,但是又是互相依赖的。没有工人的工厂没有意义,没有工厂的工人也干不了活。就是这么理解的。


在来说下主线程是什么,没错 !!~~~就是我们的main函数,其实main函数就是我们的主线程的入口。程序运行的时候,系统会将我们的代码加载到内存当中,进入主线程,运行代码,程序就呼啦呼啦跑起来了。


主线程,父线程,子线程的关系。


这里必须先说明一点,主线程和父线程。

主线程:可以认为,主线程是程序的一条主线,一旦主线程结束,程序就结束了。其他所有线程都GAME OVER了。简单理解,主线程就是游戏中的主线任务,主线任务做完了,程序就通关,结束了。


父进程:一个进程中可以有很多的线程,CreateTread()函数中就有一个参数可以指定创建线程的入口,简单的说,就是可以自定义一个线程启动入口,这个时候可以新创建一个线程,而在这个线程中可以在此掉用CreateTread()函数来创建别的线程。这样的话,线程之间就可以层层嵌套,就和C++中的父类子类一回事,如果还无法理解,回家看C++继承。。。。~!!!

但是这里要说明一点,主线程好像不能成为任何线程的父线程,这个下面会说明的。。。。。


子线程:父线程的儿子。~!!!!!!!!、


当父线程消亡的时候,子线程是不会消亡的,是会继续执行到结束的。。。。。。。~!!!!!这个很重要。。。。。 因为线程只有在windows系统的R3层上看来是有嵌套父子关系的,而在内核当中,他们都是独立的内核对象。。。。。。  重点,都是独立的。所以,当父线程消亡的时候,子线程其实是可以继续执行的。


但是~!!当主线程消亡的时候,所有线程都得死。。。。都得死。。都得死~~!!!!!重要的事情说三遍。所以我觉得,主线程是不能看作任何线程的父线程的,这里就不满足父子线程的特性啊。。。。  就是这么个意思吧。。。。




  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值