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

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

 2009-11-04 00:00:00 来源:WEB开发网   
核心提示: 健壮性由于多个线程共享同一个进程的地址空间和相关的资源, 所以当一个线程出现crash,那么可能会导致相应的地址空间和资源会出现问题,从而导致其它的线程也crash. 这个也很好理解,一个简单的大家可能都经历过的就是IE7吧, 当一个tab突然崩溃时,所有的tab都会崩溃,这时通常IE要重启(重

健壮性

由于多个线程共享同一个进程的地址空间和相关的资源, 所以当一个线程出现crash,那么可能会导致相应的地址空间和资源会出现问题,从而导致其它的线程也crash. 这个也很好理解,一个简单的大家可能都经历过的就是IE7吧, 当一个tab突然崩溃时,所有的tab都会崩溃,这时通常IE要重启(重启进程,重新生成线程).

而多进程则不存在这个问题, 因为不同的地址空间和资源, 当一个进程崩溃时, 并不会影响到其它进程. 同样,如果你用过chrome,如果一个tab崩溃了(chrome那搞笑的提示信息), 我们只需要关掉这个tab即可,并 不会影响到其它的tab.

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

图三: chrome崩溃时的截图

性能

进程的安全性,健壮性是建立在独立的地址空间和独立的资源的条件下的, 所以进程的 启动, 关闭, 切换 相比于线程会有更多的开销. 而这种开销的差别在Windows下更加显著, 请参考下面 特定操作系统的进程和线程 部分的详细说明.

特定操作系统的进程和线程

进程和线程是依赖于特定的操作系统的, 譬如Windows和Linux在实现进程和线程就有很大的差异, 这一部分主要说明 Windows和Linux下进程和线程的一些特定的特征.

Windows

通常做过Windows多任务系统开发的程序员肯定会知道, Windows中的进程比线程有很大的开销, 要一定坚持使用线程, 那么为什么呢?

这里有个讨论可供参考: Why is creating a new process more expensive on Windows than Linux?

简单总结下, 原因:

这是Windows的设计的理念所致(多用户和并行的要求不高的特性)

上一页  1 2 3 4 5  下一页

Tags:操作系统 拾遗 进程

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