zoukankan      html  css  js  c++  java
  • 2020-08-29:进程线程的区别,除了包含关系之外的一些区别,底层详细信息?

    福哥答案2020-08-29:

    1.根本区别
    进程:资源调度最小单位。
    线程:CPU调度最小单位。

    2.地址空间
    进程:进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段。
    线程:线程没有独立的地址空间,同一进程的线程共享本进程的地址空间。

    3.内存和files共享
    进程:当创建一个进程的时候,mm_struct会指向另外一块地址,使用copy-on-write进行复制。
    线程:而创建一个线程的时候,mm_struct会指向父进程的同一块虚拟内存区域,所以会有资源冲突问题。

    不论线程和进程,在linux中的创建都是很快速的。

    4.块
    进程:进程控制块PCB。一个进程用ProcessControlBlock上的一个entry记录其基本信息(pid,state,priority等),进程会被操作系统分配一个内存逻辑地址空间,即其拥有一段内存空间供使用。
    线程:线程控制块TCB。线程是进程内负责执行一项任务的单元,这个单元用ThreadControlBlock上的一个entry记录其基本信息(tid,state,priority,counter,register info等),这个单元有着自己的stack来用于任务执行。

    5.系统开销
    进程:进程执行开销大。
    线程:线程执行开销小。

    6.切换速度
    进程:切换相对慢。
    线程:切换相对快。
    ***
    [评论](https://user.qzone.qq.com/3182319461/blog/1598653671)

  • 相关阅读:
    Markdown编辑器语法指南2
    python文件读写的学习
    K:图相关的最小生成树(MST)
    K:哈弗曼树
    K:树、二叉树与森林之间的转换及其相关代码实现
    K:二叉树
    K:树与二叉树
    KandQ:那年,那树,那些知识点
    K:java中的安全模型(沙箱机制)
    K:java中的RMI(Remote Method Invocation)
  • 原文地址:https://www.cnblogs.com/waitmoon/p/13583748.html
Copyright © 2011-2022 走看看