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

进程与线程的区别和联系

时间:2022-10-25 11:57:36浏览次数:53  
标签:开销 区别 线程 切换 进程 CPU 资源

1.概念

      进程:表示计算机系统资源分配的基本单位,也是在进行中的程序。例如在电脑上打开一个应用或者程序,电脑就会创建一个进程,并且给进程分配系统资源(内存空间、I/O设备、磁盘空间/各种表格等),然后让进程进入就绪队列等待进程调度,进入CPU后才算真正运行。

      线程:程序执行运算的最小单位,也是执行处理机调度的基本单位。线程可以在处理器上单独运行,这样就能方便有效的实现多处理器并发性。如果说把进程当作生产汽车的流水线,那么线程就是这条流水线的各个工序。

 

2.进程与线程的区别

     1.一个进程能有多个线程,一个线程只能属于一个进程。

      2.进程的资源开销大,线程的资源开销小。进程之间切换需要保留原有的CPU环境下设置新进程的CPU环境,创建、销毁进程也要申请和回收资源空间,在进程的切换、创建和销毁中,系统要付出较大的时空开销。而线程在此方面的开销远远小于进程。

      3.进程拥有独立的地址空间,线程没有独立的地址空间。

 

      4.进程是系统分配资源的基本单位,它拥有自己的资源空间,而线程是共享进程的所有资源,但是它本身并不拥有系统资源。

 

3.进程与线程的联系

        1.进程与线程是包含与被包含的关系,一个进程最少有一个线程,而一个线程只能属于一个进程,这既是它们的区别,也是它们的联系。

        2.系统将资源分配给进程后,进程内的所有线程能够共享进程的资源,比如内存空间、磁盘空间、I/O设备、地址空间等。

        3.同一个进程内的线程切换不会引起进程的切换,但是不同进程的线程切换会引起进程切换,且要进行线程的信息同步。

标签:开销,区别,线程,切换,进程,CPU,资源
From: https://www.cnblogs.com/HBB666/p/16824359.html

相关文章

  • 进程和线程
    一,定义进程进程是一个具有独立功能的程序关于某个数据集合的以此运行活动。是系统进行资源分配和调度的独立单位,也是基本的执行单元。是一个动态的概念,是一个活动的实体......
  • 进程与线程的联系与区别
    进程概念:我们可以将进程(process)看作执行的程序。进程需要一定的资源,如CPU时间、内存、文件和I/O设备,以便执行任务。这些资源在创建进程或执行进程时得以分配。程......
  • 进程与线程的区别
    进程:一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程。线程:进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至......
  • 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.提高响应速度(减少了创建线程的时间)*......