建和做网站,自助手机建站系统,品牌策划的五个步骤,装修公司的网站怎么做目录
概念#xff1a;
创建线程的函数#xff1a;编辑 编辑
有多进程为什么还需要有多线程#xff1f;
线程调度的成本为什么低#xff1f; 进程与线程的区别#xff1a; 概念#xff1a; 线程是CPU的基本调度单位#xff0c;在进程内部运行。在内核中#xff…目录
概念
创建线程的函数编辑 编辑
有多进程为什么还需要有多线程
线程调度的成本为什么低 进程与线程的区别 概念 线程是CPU的基本调度单位在进程内部运行。在内核中进程是分配系统资源的基本实体。在Linux系统中没有线程只有轻量级进程没有单独设计PCB。Linux系统没有struct thread结构体原因是系统统一用PCB表示执行流就不用单独给线程设计数据结构和调度算法 创建线程的函数 上图可以看见创建了两个线程但是俩线程的pid却是一样的。 pid和lwp一样的线程叫做主线程。操作系统调度线程时根据LWP来调度 有多进程为什么还需要有多线程 线程的创建成本比进程的低但一个线程运行崩溃会影响其他线程线程删除仅仅只需要销毁一个tcp即可但进程的销毁需要销毁pcb页表地址空间等进程切换需要切换页表地址空间等等但线程不用线程的调度成本低 线程调度的成本为什么低面试
热数据 高频访问的数据、极其重要的文件 在CPU中存在一个cache用于存放热数据在进程切换时不仅要切换地址空间页表上一个进程cache的热数据也要做清空然后重新加载该进程的热数据。但线程是共享地址空间CPU 中cache的数据每个线程都有可能用上就不需要清空cache中的数据重新加载。 进程与线程的区别 进程是资源分配的基本单位线程是调度的基本单位线程共享数据但也有自己的数据 1.线程ID 2.一组寄存器硬件的上下文数据 3.栈 线程在运行时会形成各种临时变量这些临时变量会被每个线程保存在自己的栈区 4.信号屏蔽字 5.errno 6.调度优先级多个线程之间共享以下资源 文件描述符每种信号的处理方式当前的工作目录用户id和组id 进程与线程之间的关系