zoukankan      html  css  js  c++  java
  • 进程线程协程

    一、进程:

      进程是一个程序在一个数据集中的一次动态执行过程,可以理解为“正在执行的程序”。进程一般由程序集、数据集、进程控制块三部分组成。进程是系统进行资源分配和调度的基本单位,是操作系统的基础。进程是线程的容器,进程是程序的实体。

      程序集:描述进程要完成哪些功能以及如何完成

      数据集:程序在执行过程所需要使用的资源

      进程控制块:保存程序运行的状态

      进程的局限性是创建、撤销和切换的开销比较大。

    二、线程

      线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行的最小单位。一个进程最少有一个主线程。

      线程的优点:减小了程序并发执行的开销,提高了系统的并发性能。

      线程的缺点:线程没有自己的系统资源,只有运行时不可缺少的资源,但是同一进程的各线程可以共享进程所拥有的系统资源。对于某些独占资源存在锁机制,处理不当会出现死锁。

    三、协程

      协程是一种用户态的轻量级线程,又称微线程。协程调度完全由用户控制,相当于子程序。

      协程的优点:协程执行效率高。因为子程序切换不是线程切换,由程序自身控制,没有线程切换的开销。

            协程不需要多线程的锁机制。在协程中控制共享资源不加锁,只需要判断状态就好

    四、进程和线程区别

      1、资源方面:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其他进程不可见

      2、通信:进程间通信IPC,进程间可以直接读写进程数据段进行通信——需要进程同步和互斥手段辅助,以保证数据的一致性

      3、调度和切换:线程上下文切换比进程上下文切换要快的多

      4、在多线程OS中,线程不是一个可执行的实体

    五、并发并行

      1、并行是两个或者多个时间在同一时刻发生的;而并发是两个或者多个时间在同一时间间隔发生。

      2、并行是在不同实体上的多个事件,并发是同一实体上多个事件

      3、在一台机器上同时处理多个文件;在多个处理器上同时处理多个任务

      解释:

        并行:同时做不同事情的能力

        并发:交替做不同事情的能力

      专业术语:

        并行:不同的代码块同时执行

        并发:不同的代码块交替执行

      并行并发的意义:

        并发和并行都可以处理“多任务”,二者的主要区别在于是否是“同时进行”多个的任务。

        但是 涉及到任务分解(有先后依赖的任务就不能做到并行)、任务运行(可能要考虑互斥、锁、共享等)、结果合并

                    下一篇文章再贴代码

  • 相关阅读:
    ACM-ICPC 2018 徐州赛区网络预赛 G题
    ACM-ICPC 2018 沈阳赛区网络预赛 K题
    ACM-ICPC 2018 沈阳赛区网络预赛 K题
    数据结构实验之栈与队列七:出栈序列判定
    数据结构实验之栈与队列七:出栈序列判定
    Python isspace()方法
    Python isnumeric()方法
    Python islower()方法
    Python isdigit()方法
    Python isdecimal()方法
  • 原文地址:https://www.cnblogs.com/MoonlightMaleGod/p/9562315.html
Copyright © 2011-2022 走看看