首页 > 系统相关 >进程与线程的联系与区别

进程与线程的联系与区别

时间:2022-10-25 11:44:06浏览次数:50  
标签:执行 区别 程序 线程 内存 进程 多线程

进程概念:

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

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

 

进程状态:

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

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

 

线程概述:

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

 

多线程的优点:

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

 

  

标签:执行,区别,程序,线程,内存,进程,多线程
From: https://www.cnblogs.com/mypfit/p/16824102.html

相关文章

  • 进程与线程的区别
    进程:一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程。线程:进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至......
  • Oracle动态监听及静态监听区别
    作者:IT邦德中国DBA联盟(ACDU)成员,目前从事DBA及程序编程(Web\java\Python)工作,主要服务于生产制造现拥有Oracle11gOCP/OCM、Mysql、Oceanbase(OBCA)认证分布式TBase\TDSQL数......
  • 腾讯云轻量应用服务器跟云服务器有什么区别?哪个更好些?
    ​​轻量应用服务器(Lighthouse)​​是新一代面向中小企业和开发者的云服务器产品,具备轻运维、开箱即用的特点,适用于小型网站、博客、论坛、电商以及云端开发测试和学习环境等......
  • 腾讯云轻量应用服务器跟云服务器有什么区别?哪个更好些?
    ​​轻量应用服务器(Lighthouse)​​是新一代面向中小企业和开发者的云服务器产品,具备轻运维、开箱即用的特点,适用于小型网站、博客、论坛、电商以及云端开发测试和学习环境等......
  • 创建和运行线程
    方法一:直接使用Thread//创建线程对象Threadt=newThread(){publicvoidrun(){//要执行的任务}};//启动线程t.start()例如//构造方......
  • Java多线程(3):ThreadPool(中)
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 线程池是个神器,用得好会非常地方便。本来觉得线程池的构造器有些复杂,即使讲清楚了对今后的用处可能也不太大,因为有一些J......
  • 多线程
    多线程线程创建--继承Thread类不推荐使用:避免OOP单继承局限性packagecom.beijing.xiaowen.multithreading;//创建线程方式一:继承Thread类,重写run方法,调用start开启......
  • java使用线程池实现多线程
    packageA_ShangGuiGu.Thread.ThreadTest;importjava.util.concurrent.*;/***创建线程的方式四:使用线程池。*线程池的好处:*1.提高响应速度(减少了创建线程的时间)*......
  • 创建线程的方式三:实现Callable接口
    packageA_ShangGuiGu.Thread.ThreadTest;importjava.util.concurrent.Callable;importjava.util.concurrent.ExecutionException;importjava.util.concurrent.FutureTa......
  • javascript编程单线程之同步模式
    javascript编程单线程之同步模式主流的js环境都是单线程吗模式执行js代码,js采用为单线程的原因与最开始设计初衷有关,最早是运行在浏览器端的脚本语言,目的是为了实现页......