进程和线程还有更好的解释吗?

我发现基本所有的面试题,对进程和线程的解释都怪怪的,拿线程去解释线程,说了一大堆感觉就像是再说"线程就是线程"的感觉,是我太笨了?,还有jvm相关的面试题也是,总感觉是在强行解释,没有举例也没有比较#Java工程师面试常考题##Java工程师#
全部评论
说一下我的理解吧,供参考。 进程(Process)感觉是操作系统任务的资源管理单位,资源管理的一个重点就是隔离,例如不同进程的地址空间是单独的,内部的状态(PCB)也是互相独立的。 线程(Thread)更像是计算机系统中通用的执行流调度单位。例如从CPU角度上说,我们可以称不同的CPU上下文(寄存器等)为一个硬件级线程(参考超线程等技术,以及x86中的TSS寄存器,虽然现在没有用来做任务切换了)。从操作系统角度考虑一个线程是一个可调度的任务,可以分为内核级线程和用户态线程。从用户态的程序例如语言虚拟机考虑,一个线程也是当前要执行的上下文,例如C中的setjmp和longjmp以及高级语言中的协程。 具体拿Linux来说,内核在实现上不区分线程和进程,线程(Pthread实现)只不过是clone系统调用中flag参数加上了共享地址空间等标识。
4 回复 分享
发布于 2021-06-16 09:53
一个用来分配资源,比如内存,文件什么的。 一个用来调度,执行具体的哪些指令
点赞 回复 分享
发布于 2021-06-16 14:36
去看linux内核设计与实现 这题能讲十分钟
点赞 回复 分享
发布于 2021-06-17 11:34

相关推荐

我见java多妩媚:大外包
点赞 评论 收藏
分享
1 11 评论
分享
牛客网
牛客企业服务