一直不明白进程和线程的概念,请帮忙详细讲解讲解。 (50分)

  • 主题发起人 主题发起人 tom2003
  • 开始时间 开始时间
T

tom2003

Unregistered / Unconfirmed
GUEST, unregistred user!
一直不明白进程和线程的概念,请帮忙详细讲解讲解。
或者推荐点这方面的资料也行。
 
看书或查以往的资料,不要浪费分数
 
形象点,进程一般以程序的面目出现,线程则是进程的组成单位.
 
运行程序a,系统中就增加一个a的进程;
运行程序b,系统中再增加一个b的进程;
依次类推;
再运行程序a,系统中再增加一个a的进程。
就是说有多少程序就有多少进程。(大抵如此)
进程a是一个与用户交互的程序,那么就有了一个线程,
但是不幸的是它还想偷偷的删除你所有的硬盘数据,
于是它一面与你交互,一面删除你的文件,这样它就是具有两个线程的进程。
当然如果它不运行对你来说不幸的那一部分,那么它还是单线程进程。
 
每个程序都有一个主线程
同一个程序同时运行多次就是多个进程
多个线程是同一个程序在运行时将自己在某个时刻复制一份(只复制运行时的控制信息)
各个线程其实是使用的同一个空间,对操作系统来讲,它不认识这个复制后复制出来的这个线程跟原来的主线程的关系
它会认为他们是独立的而同等对待
不过不知是不是我理解错了我在WINDOWS下没写过多线程好象LINUX下不存在主次之分
复制后新的进程跟原来的进程是一模样的。
说的可能不对,请指正吧
 
线程存在于进程之中,一个进程至少有一个主线程。
 
多线程的两个概念:
1) 进程:也称任务,程序载入内存,并分配资源,称为“一个进程
”。注意:进程本身并不一定要正在执行。进程由以下几部分组成:
a>一个私有的地址空间,它是进程可以使用的一组虚拟内存地址空间;
b>程序的相关代码、数据源;
c>系统资源,比如操作系统同步对象等;
d>至少包含一个线程(主线程);
2) 线程:是程序的执行单位(线程本身并不包括程序代码,真正拥
有代码的是进程),每个进程至少包括一个线程,称为主线程,一个进程
如果有多个线程,就可以共享同一进程的资源,并可以并发执行。
线程是进程的一个执行单元,是操作系统分配CPU 时间的基本实体,
线程主要由如下两部分组成:
a>数据结构;
b>CPU 寄存器和堆栈;
一个进程中的线程,可以独立运行,也可以控制另一个线程的运行。
 
線程在進程之中,是最小的獨立單位。多個線程組成一個進程。
 
windows分时是以线程为切换单位的
每个进程刚运行时就是一个线程,此间可以再新建子线程。
关于线程,你可以从字面上理解。‘线’.....
主线程:
开始程序->.......->建子线程->......>.........-->.....
|
子线程: ——>............->..............->.......
是不是两条执行线路??
 
从操作系统的角度来说,线程是轻量级的进程,线程不拥有资源。
 
进程是线程的爹!
 
线程是最小的执行单位,没有资源,进程是最小的执行和拥有资源的最小单位。可以理解线程分了进程的一个最小,因为进程拥有资源的最小单位和执行的最小单位,这样容易出问题,然后就用线程来分开。但线程可以共享他所属进程的资源。
 
打个比方吧,比人相当一个进程,人身体的细胞相当于线程
 
大麻: 起床->玩游戏->(叫小麻去买早点)->玩游戏->.... ->一起吃......OVER!
| |
小麻: -->去买早点->....->买完了--->
这里可将大麻看作进程创建时建立的主线程,小麻就是子线程,两个人属于一个进程.
进程可以视做一个任务,而一个任务是可以由多个人一起完成的,每个人就是一个线程
 
系统--|-->进程A--->线程a(必有)
          |->线程b(可以由进程A创建)
          |->线程c(可以由进程A创建)
系统里有多个进程,每个可执行文件运行后都会以进程的形式存在。
线程则不同,线程是进程的组成部分,一个进程可以有一个或者多个
线程。
 
学习中。。。 。。。
谢谢
 
线程就是一个执行体,最小执行单位
 
什么时候用线程呢?我看那些源码好象都没用到线程啊
 
刘麻子的“麻子”进程,解释地已经非常直观了。
 
请看一些关于操作系统的书
 
后退
顶部