WEB开发网
开发学院操作系统windows 2008 操作系统拾遗之进程和线程 阅读

操作系统拾遗之进程和线程

 2009-11-04 00:00:00 来源:WEB开发网   
核心提示: 进程和线程的联系二者的关系可以简单的一句话概括为,通常, 一个进程可以包括多个线程, 一个线程只能属于一个进程.一个进程可以生成多个线程,而这些线程之前共享地址空间和相应的资源, 在线程切换时, 并没有太多的开销.图1: 进程的执行空间示意图图2: 线程的执行空间示意图从上面2个图可以很清楚地看

进程和线程的联系

二者的关系可以简单的一句话概括为, 通常, 一个进程可以包括多个线程, 一个线程只能属于一个进程.

一个进程可以生成多个线程,而这些线程之前共享地址空间和相应的资源, 在线程切换时, 并没有太多的开销.

操作系统拾遗之进程和线程

图1: 进程的执行空间示意图

操作系统拾遗之进程和线程

图2: 线程的执行空间示意图

从上面2个图可以很清楚地看到, 进程和线程在共享地址空间和资源的区别.

那么, 对于同样一个应用,我们可以选择 进程 来实现, 也可以选择 线程 来实现, 那么二者有什么区别呢? 我们应该如何选择呢?

进程和线程的区别

从本质上说,二者只是在 是否共享地址空间,及共享多少地址空间 上是有差别的,而至于其它的区别也都是 因为这个本质区别来引起的. 下面逐一地进行简单的说明.

关于共享地址空间

传统意义上, 进程之间是不共享地址空间的, 而线程是共享着进程的地址空间.

但是在Linux中, 会有不同, 请参考下面 特定操作系统的进程和线程 部分的详细说明.

安全性

因为进程之前是不共享资源和地址空间的,所以不会存在太多的安全问题(相比于线程).

而由于多个线程共享着相同的地址空间和资源,所以会存在线程之间有可能会恶意修改或者获取非授权数据的可能.

这也就是为什么近期, chrome和IE8相继开始使用多进程来替代之前的多线程(不同的tab之间).

上一页  1 2 3 4 5  下一页

Tags:操作系统 拾遗 进程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接