zoukankan      html  css  js  c++  java
  • 并行与并发的区别?线程与进程的区别?

    并行与并发的区别?

      假设一个有三个学生需要辅导作业,帮每个学生辅导完作业是一个任务

      顺序执行:老师甲先帮学生A辅导,辅导完之后再取给B辅导,最后再去给C辅导,效率低下 ,很久才完成三个任务

      并发:老师甲先给学生A去讲思路,A听懂了自己书写过程并且检查,而甲老师在这期间直接去给B讲思路,讲完思路再去给C讲思路,让B自己整理步骤。这样老师就没有空着,一直在做事情,很快就完成了三个任务。与顺序执行不同的是,顺序执行,老师讲完思路之后学生在写步骤,这在这期间,老师是完全空着的,没做事的,所以效率低下。

      并行:直接让三个老师甲、乙、丙三个老师“同时”给三个学生辅导作业,也完成的很快。

    总结:

      并发就是指代码逻辑上可以并行,有并行的潜力,但是不一定当前是真的以物理并行的方式运行。并发指的是代码的性质,并行指的是物理运行状态。

      顾名思义,并发强调的是一起出发,并行强调的是一起执行。并发的反义是顺序,并行的反义是串行。并发并行并不是互斥概念,只不过并发强调任务的抽象调度,并行强调任务的实际执行。

    线程与进程的区别?

    • 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
    • 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;
    • 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见;
    • 调度和切换:线程上下文切换比进程上下文切换要快得多。

      早期的操作系统并没有线程的概念,只有进程,进程负责操作系统对应用程序资源的分配以及程序任务的调度执行,
    但随着计算机科学的发展,为了提高操作系统的资源利用率,人们提出了线程的概念,用线程来控制应用程序任务的调度
    执行,进程负责操作系统对应用程序资源的分配。也就是说进程是操作系统对资源分配的最小单位,线程是任务调度执行的最小
    单位,进程由一个或多个线程组成。
      线程的概念实际上可以分为两种,用户线程和内核线程,用户线程指的就是我们应用程序中的线程,内核线程指操作系统处理器所
    具有的一种线程。用户线程被调度的时候,会被映射到内核线程上,内核线程进行调度执行。

    参考链接:以操作系统的角度述说线程与进程

           并行与并发的区别

  • 相关阅读:
    时隔三个月,不言谢归来了。学习播客继续更新日常所学。
    一个网易云音乐的外链URL简单的获取方法
    VisualStudioCode常用主题,与插件设置
    页面a标签统一跳转方法:base 标签
    Web前端开发规范(记录一):团队约定-基本原则
    JS中,正则表达式:match(/^(.*)(.)(.{1,8})$/)[3]分析
    Morgan模块使用
    Config模块使用
    MongoDB安装
    JSP-九大内置对象
  • 原文地址:https://www.cnblogs.com/jxxblogs/p/11643995.html
Copyright © 2011-2022 走看看