1、什么是进程
指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。进程是系统进行资源分配和调度的一个独立单位.
2、什么是线程
线程是进程中的一个实体,是CPU调度和分派的基本单位。Linux下的线程看作轻量级进程。
区别:
(1) 进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元。
(2) 同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进行至少包括一个线程。
(3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束。
(4)线程是轻量级的进程,它的创建和销毁所需要的时间比进程小很多,所有操作系统中的执行功能都是创建线程去完成的。
(5)线程中执行时一般都要进行同步和互斥,因为他们共享同一进程的所有资源。
(6)线程有自己的私有属性TCB,线程id,寄存器、硬件上下文,而进程也有自己的私有属性进程控制块PCB,这些私有属性是不被共享的,用来标示一个进程或一个线程的标志