😻猫娘😻
频道主
📕面试题:线程、程序、进程的基本概念及其关系
1. 程序(Program)
程序是一个静态的概念,它指的是一组有序的指令或代码。程序本身并不执行任务,只有被加载到内存并运行时,它才开始执行,这时才变成了一个进程。程序存储在磁盘上,是一个静态的实体,例如 .exe 文件、.jar 文件等。
总结:程序是一种静态代码集合,不具备执行的能力。
2. 进程(Process)
进程是一个动态的实体,是程序在操作系统中运行时的一个实例。每个进程有自己的内存地址空间,并且操作系统会为其分配 CPU 时间、内存资源等。一个进程可以运行多个线程,但这些线程会共享进程的资源。
• 独立性:进程之间相互隔离,每个进程都拥有独立的内存空间。
• 资源管理:进程需要分配特定的资源,如内存、文件句柄等。
• 上下文切换:进程切换比线程切换代价更高,因为需要更复杂的上下文切换。
总结:进程是程序在操作系统中执行时的活动实例,拥有独立的资源和内存空间。
3. 线程(Thread)
线程是进程中的一个执行单元,代表了一个任务的执行路径。一个进程可以包含多个线程,这些线程共享该进程的内存空间和资源(如文件、全局变量等),但每个线程拥有自己独立的栈和寄存器。
• 轻量级:线程创建和切换的成本较低,因为线程间共享内存空间。
• 资源共享:同一进程的线程共享内存,适合多任务并发执行,但可能会导致线程间资源竞争。
• 并发执行:多线程允许进程执行多个任务,提高程序的执行效率。
总结:线程是进程中的轻量级执行单元,负责在同一进程中执行任务。
三者之间的关系
• 程序是代码,是一个静态的实体。
• 进程是程序的运行实例,操作系统为其分配独立的资源和内存空间。
• 线程是进程中的执行单元,同一进程中的多个线程共享该进程的资源。
可以简单理解为:
• 程序是设计图,进程是正在构建的建筑,线程是建筑中的工人。
• 进程启动时会创建一个主线程,程序在该主线程中执行。若该程序是多线程应用,那么主线程会根据任务情况创建其他线程,形成并发执行。
- 下载图片
- 复制图片
2024-10-29
浏览58
Go
登录后评论
6
2
分享
