进程:
(1)进程是系统进行分配的最小单位,进程创建的时候就拥有的自己独立的进程地址空间。
(2)在进程中创建线程,一个进程中至少有一个线程。
线程:
(1)线程是比进程还要小的能够独立运行的执行体,线程是最小的执行体,是CPU调度的最小单位。
(2)线程自己不拥有系统资源,他和进程中其他的线程共同享有进程所拥有的所有资源,他只拥有运行中不可缺少的资源(如寄存器,栈等)。
(3)线程执行的开销少
进程的优点:
(1)每个进程拥有系统为自己分配的系统资源,拥有自己独立的内存单元
(2)在多进程中,由于每个进程都是相互独立的,所以当一个进程如果挂掉了,是不会影响其他进程的。所以多进程比多线程更加健壮。
进程的缺点:
(1)每一个进程都会为他分配系统资源,这是系统中极大的消耗。
(2)因为每个进程都有自己的进程地址空间,所以进程切换的时候,资源耗费大,cpu调度慢。
线程的优点:
(1)每个线程都与进程中的其他线程共享数据,系统不用为每个线程分配资源,资源耗费小。
(2)由于共享内存单元,所以CPU调度快。
(3)由于不需要再不同的进程地址空间进行资源的切换,线程的并发性比较高。
线程的缺点:
(1)线程不利于资源的管理和保护
(2)进程中所有的线程共享进程所拥有的所有资源, 线程只是进程一个执行路径,每个线程没有自己独立的地址空间,这以为着当一个线程挂掉了以后,整个进程都死掉了。
(3)线程不能够独立执行,他只能够依赖于应用程序,由应用程序提供多个线程的执行控制。