一、进程与线程##
《1》问: 什么是进程?什么是线程?二者有何关系?
答:线程是一个PCB,进程是一个PCB组;进程是一个程序运行的实体,每个进程都有它自己的内存地址段,换句话说,进程时执行中的程序,而程序是由多个代码段的集合,一般加载到内存中,是一个没有生命的实体,只有处理器赋予生命时,它才能成为一个活动的实体,另外,进程是指在系统中正在运行的一个应用程序,主要负责资源的分配和管理,线程在linux下,又被称为轻量级进程(LWP),是系统分配处理器时间资源的基本单元,是程序执行的最小单元;
关系: 多线程的进程,又被称为线程组;一个进程至少包括一个线程,通常将该线程称为主线程,若程序只有一个线程,那么就是程序的本身;一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线程的多任务。
二、线程
《1》什么是线程?
线程包含了表示进程内执行环境必须的信息,包括标识线程的线程ID,一组寄存器值,栈,调度优先级和策略,信号屏蔽字,errno变量以及线程私有数据;
进程内所有信息对于线程都是共享的,包括执行代码,全局变量和堆内存以及文件描述符;
线程标识:
-就像每个进程有一个进程ID一样,线程也有自己的ID;
-进程ID用pid_t来表示,它是一个unsigned int;
-线程ID用pthread_t来表示,pthread_t 不能把它当作整数处理;
-线程可以通过pthread_self()函数获得自身的线程ID
《2》进程和线程的关系图
《3》线程的优缺点
**【1】优点: **
(1)单线程的进程可以简单的认为只有一个线程的进程;
(2)一个进程在同一时间只做一件事,有了多线程后一个进程同一时间可以做很多事;
(3)每个线程可以处理不同的事物,能充分利⽤用多处理器的可并⾏行数量
(4)无论系统有几个CPU,即使程序运行在