【进程和线程的区别介绍 线程和进程的区别是什么】 对于操作系统而言 , 进程是整个现代操作系统的根本 , 操作系統是以进程为单位执行任务 。随着技术发展 , 在执行一些细小任务 , 且本身无需分配单独资源时 , 进程的实现机制依然会繁琐的将资源分割 , 这样造成浪费 , 而且还消耗时间 , 所以就有了专门的多任务技术被创造出来——线程 。线程的特点就是在不需要独立资源的情况下就可以运行 。如此一来会极大节省资源开销 , 以及处理时间 。
进程和线程的主要差别在于它们是不同的操作系统资源管理方式 。进程有独立的地址空间 , 一个进程崩溃后 , 在保护模式下不会对其它进程产生影响 , 而线程只是一个进程中的不同执行路径 。线程有自己的堆栈和局部变量 , 但线程之间没有单独的地址空间 , 所以多进程的程序要比多线程的程序健壮 , 但在进程切换时 , 耗费资源较大 , 效率要差一些 。但对于一些要求同时进行并且又要共享某些变量的并发操作 , 只能用线程 , 不能用进程 。
我们有如下对比图片:
但是对于 Linux 来说 , 它只支持轻量级进程 , 不支持线程 , 对于 Linux 而言:
- 系统启动后的 第一个进程是 init , 它的 PID 是 1 。init 是唯一一个由系统内核直接运行的进程 。
- 除了 init 之外 , 每个进程都有 父进程(PPID 标识)
- 每个进程还有四个 与用户和组相关的识别号
- 实际用户识别号 (real user ID , RUID)
- 实际组识别号 (real group ID , RGID)
- 有效用户识别号 (effect user ID , EUID)
- 有效组识别号 (effect group ID , EGID)
如果是出于面试的角度 , 我们需要关注的点有哪些呢?
- 进程的执行过程是线状的 , 尽管中间会发生中断或暂停 , 但该进程所拥有的资源只为该线状执行过程服务 。一旦发生进程上下文切换 , 这些资源都是要被保护起来的 。
- 线程的改变只代表了 CPU 执行过程的改变 , 而没有发生进程所拥有的资源变化 。
- 计算机内的软硬件资源的分配与线程无关 , 线程只能共享它所属进程的资源 。
- 进程拥有一个完整的虚拟地址空间 , 不依赖于线程而独立存在;反之 , 线程是进程的一部分 , 没有自己的地址空间 , 与进程内的其他线程一起共享分配给该进程的所有资源 。
- 线程中执行时一般都要进行同步和互斥 , 因为他们共享同一进程的所有资源 。
推荐阅读
- 美国女子35美圆买个石像,发明是2000年汗青的古罗马文物
- 动漫励志短句 动漫励志短句致自己奋斗
- 身份证补办最全攻略来了 身份证过期怎么补办
- 朋友圈微信心情句子好经典语录 发微信朋友圈心情句子
- 笑死人的生日文案 生日横幅文案沙雕
- 2022年底朋友圈工作说说 年底的总结朋友圈说说2022
- 两种肤质的分辨小妙招 混干皮和混油皮区别
- 教你详细的郁金香画画过程 郁金香怎么画
- 快来看看梅花的神奇功效 梅花功效有哪些