概念
- 程序并不能单独运行,只有将程序装在到内存中,系统为它分配资源才能运行,而这种执行的程序就叫做进程。程序和进程的区别在于,程序是指令的集合,它是进程运行的静态描述文件;进程是程序的一次执行活动,属于动态概念。
操作系统的内存允许多个程序同时加载,在操作系统的调度下,可以通过轮询分配资源实现并发执行,大大的提高了CPU的利用率。
区别
- 进程是具有一定独立功能的程序关于某个数据集合上的运行活动,进程是系统进行资源分配和调度的一个独立单位
- 线程是进程的一个实体,是CPU调度和分配的基本单位,它是比线程更小的能独立运行的进本单位。线程不拥有系统资源,它和同进程的其他线程共享系统资源。
- 一个线程可以创建和撤销另一个线程,同一个进程的多个线程可以并发执行。
- 进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程造成影响。而线程值是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但是没有单独的地址空间。一个线程死掉就等于整个进程都死掉,所有多进程的程序要比多线程的程序健壮。但是在进程切换时,资源耗费比较大,效率要更差一些。对于一些要求同时进程并共享某些数据的并发操作,只能使用线程。