进程
C、C++、Java等语言编写的源程序经相应的编译器编译成可执行文件后,交给计算机处理,这时处于正在运行的程序称之为进程;从用户的角度来看,进程是一个应用程序的执行过程,而从操作系统角度来看,进程是系统分配的内存、CPU时间等资源的一个基准单位,是为程序提供的一个运行环境。它是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独 立运行的一段程序。
线程
相对于进程来说,线程更接近与一个执行体,他是进程的一个实行体,它可以与同进程中的其他线程共享数据,他是比进程更小的能独立运行的基本单位;
进程与线程之间的区别
- 每个独立的进程只有一个程序的入口、顺序执行序列和程序的出口,而线程不能独立执行,它必须依附在程序当中,由应用程序提供多个线程控制zhixing、
- 进程与线程的操作系统资源的管理方式不同,进程有自己的地址空间,一个进程崩溃后,在保护迷失下不会影响其他进程;线程没有自己的地址空间,它只是一个进程当中不同的执行路径,一个线程死掉,整个进程就会死掉。综上所述,多进程的程序要比多线程的程序健壮得多。
一个程序至少需要一个进程,而一个进程至少需要一个线程,一个线程只能属于一个进程。
例子
单进程单线程:一个人在一个桌子上吃菜。
单进程多线程:多个人在同一个桌子上一起吃菜。
多进程单线程:多个人每个人在自己的桌子上吃菜