进程是一个实体。每一个进程都有它自己的内存地址段(heap、stack等等)
进程是执行中的程序。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体。
进程是操作系统中最基本、重要的概念。
单线程的进程可以简单的认为只有一个线程的进程。
一个进程在同一时间只做一件事,有了多线程后一个进程同一时间可以做多件事。
每个线程可以处理不同的事务。
无论系统有几个CPU,即使进程运行在单CPU上,多线程也可以使进程并发处理多个事务。
一个线程阻塞并不会影响到另外一个线程。
多线程的进程可以尽可能的利用系统CPU资源。
线程包含了表示进程内执行环境必须的信息,包括标识线程的线程ID,一组寄存器值,栈,调度优先级和策略,信号屏蔽字,errno变量以及线程私有数据。
进程内所有的信息对于线程都是共享的,包括执行代码,全局变量,和堆内存,栈以及文件描述符。
线程标识
–就像每个进程有个进程ID一样,线程也有自己的ID。
–进程ID用pid_t来表示,它是一个unsigned int。
–线程ID用pthread_t表示,pthread_t不能把它当整数处理。
–线程可以通过pthread_self()函数获得自身的线程ID