您的位置:首页 > 其它

线程和进程

2016-04-24 14:15 197 查看

a.二者定义

进程:进程是对一个正在运行的程序的一种抽象。
线程:线程是程序执行流的最小单元。

b.二者大致区别

线程是进程的一部分,操作系统每运行一个程序就会有一个进程,而每一个进程又会分成几个线程来运行,进程是处理器层面的,而线程是进程层面的。线程是进程的一个实体,线程本身没有多少资源但每个线程都可以共享与他同属的一个进程的其他线程的所有资源。进程是资源管理的最小单元;而线程是程序执行的最小单元。

c.线程和进程在linux下的区别和表现形式

我看了一些资料,感觉线程和进程的区别就是b中的回答,上网查好像也没有几个正面的回答。还有说linux下并不真正区分线程和进程因为“因为LINUX在进程和线程的实现上是一样的。都是通过task结构体来定义的。只是不同进程使用的是不同的进程空间,而同一个进程的不同线程
使用的是相同的进程空间”(看不太懂);还有就是表现形式,我不太懂什么叫表现形式,是如何查看linux的进程和线程吗?如果是,那就可以再ps命令中“-T”可以开启线程查看。

d.什么是并发,并发的是线程还是进程

并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间
段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。所以并发的应该是线程。但是我在另一本书上看到的是这个意思,那本书上写着“构建进程这个抽象,我们能够涉及出同时执行多个程序的系统,这就导致了并发。使用线程,我们甚至能够在一个程序中执行多个控制流。从20世纪60年代出现分时以来,计算机系统中就开始有了对并发的支持。传统意义上这种并发执行知识模拟出来的,是通过一台计算机在它正在执行的进程间快速切换的方式实现的,就好像一个杂技演员保持多个球在空中飞舞。”——摘自《深入了解计算机系统》P15,这意思不就是并发的是进程吗?.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: