曲径通幽论坛

标题: 线程与进程的关系 [打印本页]

作者: beyes    时间: 2009-6-24 10:50
标题: 线程与进程的关系
线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。由于每个线程占用的 CPU 时间是由系统分配的,因此可以把线程堪称操作系统分配 CPU 时间的基本单位。
在用户看来,多个线程是同时执行的,但从操作系统看来,各个线程是交替执行的。系统不停的在各个线程之间切换,每个线程只有在系统分配给它的时间片内才取得 CPU 的控制权(微观串行,宏观并行),执行线程中的代码。( 注意: 这里只是针对单 CPU 单核的情况;在多 CPU 多核的主机上,多个线程是可以同时运行的。)

Linux 支持多线程,它在一个进程内生成许多个线程。一个进程可以拥有一至多个线程。为什么在支持多进程的情况下还引入多线程呢?这是因为多线程相对于多进程有以下优点:
线程以上优点,可以概括为两个字“节约” :节约资源、节约时间。这些对操作系统的设计来说是非常重要的。此外,线程还具有如下优点:
虽然线程在进程内共享地址空间、打开的文件描述符等资源。但是线程也有似有的数据信息,包括:
Linux 系统支持 POSIX 多线程接口,成为 pthread (Posix Thread).编写 Linux 下的的多线程应用程序,需要使用头文件 pthread.h,连接时需要使用库 libpthread.a 。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2