请教关于进程和线程占用资源的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/18 04:43:19
前提每个线程运行同一个方法
1、一个进程中有两个线程
2、两个进程分别各有一个线程
请问1与2哪个占用的资源大??细说明!!
请从专业理论上将一下进程与线程!

线程是一种操作系统对象,代表着一个进程中要被执行的代码的路径。每一个WIN32应用程序至少有一个线程--通常称为住线程或默认线程--但应用程序可以自由地创建其他线程来执行其他任务!
进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程
线程是比进程更小的执行单位。一个进程在其执行过程能够中,可以产生 多个线程,形成多条执行线索。每条线索,即每个线程也有它自身的产生、存在和消亡过程,也是一个动态的概念。
一个程序应该只有一个进程吧,但是可以拥有多个线程。
可以说,一个执文件被运行后,就可以称为是一个进程了。但是进程只是存在内存中,实际上他是不会做任何事情的。
这个时候,起作用的就是线程了。线程是程序的执行者,一个程序至少有一个线程,但是在多线程的操作系统中,可以有一个以上的线程。

其实我们可以把线程看成是我们排队买肯德鸡吃(循环的排队,一直排下去,知道我不想买了,退出)。每人都有机会到达队伍的最前端去买东西,这个就好比是线程,都有机会被程序执行。但是线程真正起作用的时候,就是我们在队伍的最前端买东西到东西买完后,这一段时间,这是线程真正执行的阶段。进程与线程
进程和线程是两个相对的概念,通常来说,一个进程可以定义程序的一个实例(Instan
ce)。在Win32中,进程并不执行什么,它只是占据应用程序所使用的地址空间。为了让
进程完成一定的工作,进程必须至少占有一个线程,正是这个线程负责包含进程地址空
间中的代码。实际上,一个进程可以包含几个线程,它们可以同时执行进程地址空间中
的代码。为了做到这一点,每个线程有自己的一组CPU寄存器和堆栈。每个进程中至少有
一个线程在执行其地址空间中的代码。如果没有线程执行进程地址空间中的代码,进程
也就没有继续存在的理由,系统将自动清除进程及其地址空间。
多线程的实现原理
创建一个进程时,它的第一个线程称为主线程(Primary thread),由系统自动生成。
然后可以由这个主线程生成额外的线程,而这些线程,又可以生成更多的线程。
在运行一个多线程的程序时,从表