【进程与线程】操作系统知识点

进程和线程的区别?
答:进程是资源(CPU,内存等)分配的基本单位,是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间片,程序开始真正运行。
线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,再多CPU环境下就允许多个线程同时运行。同样,多线程也可以实现并发操作,每个请求分配一个线程来处理。
两者的主要区别:
1.运行方式不同
进程不能单独执行,它只是资源的集合,进程要操作CPU,必须要创建一个线程,所有的同一个进程里的线程,是共享同一块进程所占的内存空间。
2.关系
进程中第一个线程是主线程,主线程可以创建其他线程;其他的线程也可以创建其他线程,线程之间是平等的。
进程有父进程和子进程,独立的内存空间,唯一的标识符:pid
线程共享内存空间,进程的内存是独立的。
3.速度
启动线程比启动进程快,运行线程和运行进程速度上是一样的,没有可比性。
4.创建
父进程生成子进程,相当于复制一份内存空间,进程之间不能直接访问。
创建新线程很简单,线程直接创建就可以。
一个线程可以控制和操作同级线程里的其他线程,但是进程只能操作子进程。
5.交互
同一个进程里的线程之间可以直接访问。
两个进程想通信必须通过一个中间代理来实现。

猜你喜欢

转载自blog.csdn.net/weixin_43760712/article/details/86482909