linux 谈谈对线程的了解,谈谈多线程。
1个回答
关注
展开全部
Linux下,并不存在真正的多线程,而是用进程模拟的,但windows中存在真正的多线程。如果Linux下支持真正的多线程,当线程足够多的时候,OS要管理线程,如果支持真的线程,OS要创建线程,终止线程,调度线程,切换线程,给线程分配资源,释放资源,回收资源,所有的这一套相比较进程都会另起炉灶,再搭一套在进程内部,或与进程平行的另一条线程管理模块,这样的话一定会提高设计OS的复杂程度,所以Linux中线程的 设计直接复用了进程的数据结构,所以Linux下并不存在真正的多线程,是用进程模拟的。
咨询记录 · 回答于2022-04-12
linux 谈谈对线程的了解,谈谈多线程。
Linux下,并不存在真正的多线程,而是用进程模拟的,但windows中存在真正的多线程。如果Linux下支持真正的多线程,当线程足够多的时候,OS要管理线程,如果支持真的线程,OS要创建线程,终止线程,调度线程,切换线程,给线程分配资源,释放资源,回收资源,所有的这一套相比较进程都会另起炉灶,再搭一套在进程内部,或与进程平行的另一条线程管理模块,这样的话一定会提高设计OS的复杂程度,所以Linux中线程的 设计直接复用了进程的数据结构,所以Linux下并不存在真正的多线程,是用进程模拟的。
你好,很高兴继续为你解答,所谓的线程如下。1、在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”2、一切进程至少都有一个执行线程3、线程在进程内部运行,本质是在进程地址空间内运行4、在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化5、透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程执行流这就是我为您解答的问题,希望可以很好的帮助到您,祝您一切顺利。
堆和栈是什么,怎么去理解
堆(Heap)与栈(Stack)是开发人员必须面对的两个概念,在理解这两个概念时,需要放到具体的场景下,因为不同场景下,堆与栈代表不同的含义。一般情况下,有两层含义: (1)程序内存布局场景下,堆与栈表示的是两种内存管理方式; (2)数据结构场景下,堆与栈表示两种常用的数据结构。
栈由操作系统自动分配释放 ,用于存放函数的参数值、局部变量等,其操作方式类似于数据结构中的栈。
堆由程序员分配释放, 若程序员不释放,程序结束时由OS回收,分配方式倒是类似于链表。
已赞过
评论
收起
你对这个回答的评价是?