进程与线程的联系与区别

进程概念:

  我们可以将进程(process)看作执行的程序。进程需要一定的资源,如CPU时间、内存、文件和I/O设备,以便执行任务。这些资源在创建进程或执行进程时得以分配。

  程序本身不是进程,程序只是被动实体,如存储在磁盘上包含一系列指令的文件(经常称为可执行文件)。相反,进程是活动实体,具有一个程序计数器用于表示下个执行命令和一组相关资源。总而言之,当一个可执行文件被加载到内存时,这个程序就成为了进程。

 

进程状态:

  进程在执行时会改变状态。进程状态,部分取决于进程的当前活动。每个进程可能处于以下状态:

  • 新的(new):进程正在创建。
  • 运行(running):指令正在执行。
  • 等待(waiting):进程等待发生某个事件如I/O完成或收到信号。
  • 就绪(ready):进程等待分配处理器。
  • 终止(terminated):进程已经完成任务。

 

线程概述:

  每个线程都是CPU使用的一个基本单元,它包括线程ID、程序计数器、寄存器组和堆栈。它与同一个进程共享代码段、数据段和其他操作系统资源,如打开文件和信号。每个传统或重量级进程只有单个控制线程。如果一个进程具有多个控制线程,那么它就能同时执行多个任务。现代计算机运行的大多数应用软件都是多线程的。

 

多线程的优点:

  • 响应性:如果一个交互程序采用多线程,那么即使部分阻塞或执行冗长操作,它仍可以继续执行,从而增加用户的相应程度。
  • 资源共享:线程默认共享它们所属进程的内存和资源。它允许一个应用程序在同一地址空间内有多个不同活动线程。
  • 经济:进程创建所需的内存和资源分配非常昂贵,而线程能够共享它们所需进程的资源,所以创建和切换线程更加经济。
  • 可伸缩性:对于多处理器体系结构,多线程的优点更大,因为线程可以在多处理核上运行。

 

  

posted @   抹月披风  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示