说一下我的理解吧,供参考。 进程(Process)感觉是操作系统任务的资源管理单位,资源管理的一个重点就是隔离,例如不同进程的地址空间是单独的,内部的状态(PCB)也是互相独立的。 线程(Thread)更像是计算机系统中通用的执行流调度单位。例如从CPU角度上说,我们可以称不同的CPU上下文(寄存器等)为一个硬件级线程(参考超线程等技术,以及x86中的TSS寄存器,虽然现在没有用来做任务切换了)。从操作系统角度考虑一个线程是一个可调度的任务,可以分为内核级线程和用户态线程。从用户态的程序例如语言虚拟机考虑,一个线程也是当前要执行的上下文,例如C中的setjmp和longjmp以及高级语言中的协程。 具体拿Linux来说,内核在实现上不区分线程和进程,线程(Pthread实现)只不过是clone系统调用中flag参数加上了共享地址空间等标识。
4 1

相关推荐

伟大的烤冷面被普调:暨大✌🏻就是强
点赞 评论 收藏
分享
10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
牛客网
牛客企业服务