zoukankan      html  css  js  c++  java
  • 简单理解进程与线程

    定义:

      1、进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。

      2、线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。

    区别:

      1、进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元。

      2、同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进行至少包括一个线程。

      3、进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束。

      4、线程是轻两级的进程,它的创建和销毁所需要的时间比进程小很多,所有操作系统中的执行功能都是创建线程去完成的。

      5、线程中执行时一般都要进行同步和互斥,因为他们共享同一进程的所有资源。

      6、线程有自己的私有属性TCB,线程id,寄存器、硬件上下文,而进程也有自己的私有属性进程控制块PCB,这些私有属性是不被共享的,用来标示一个进程或一个线程的标志。

    优缺点:

      1、线程执行开销小,但是不利于资源的管理和保护。线程适合在SMP机器(双CPU系统)上运行。

      2、进程执行开销大,但是能够很好的进行资源管理和保护。进程可以跨机器前移。

    应用场景:

      1、对资源的管理和保护要求高,不限制开销和效率时,使用多进程。

      2、要求效率高,频繁切换时,资源的保护管理要求不是很高时,使用多线程。

  • 相关阅读:
    java 基础笔记
    专业人士给我的JAVA学习建议
    JAVA版2048
    学习构建之法后的疑问
    角色职责及技术需求相关思考
    使用Composer安装Yii2框架+Windows下的XAMPP部署Yii2
    MiniProgram开发--云开发(1)
    Android Studio丢失Logcat问题
    SSH异常处理记录
    Android环境搭建与通过命令行方式创建Android应用
  • 原文地址:https://www.cnblogs.com/negan-watermalon/p/10634831.html
Copyright © 2011-2022 走看看