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

    线程与进程

    线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。

    简单来讲,线程是运算最小单元。

    以下是个人理解

    线程与进程之间的关系

    首先想说进程和线程或者很多其他设计,都来自人对自然的模仿

    进程与进程可以并行(分情况)

    线程与线程可以并行(分情况)

    进程包含线程-进程由多个线程组成

    计算机与人类比

    一个人一边吃东西(eat),一边听歌(listen),可以看作两个线程,并行运行(资源不同,是嘴巴与耳朵)

    喝水(drink) 另一个线程

    吃东西与听歌是两个线程同时运行,看作并行

    吃东西与喝水这两个线程,却不能并行,他们需要相同资源(嘴巴),在计算机中也存在这种问题,多个任务存在需要相同资源的情况,这时候不存在并行情况,而是轮流使用唯一资源,暂且叫轮询吧。

    这种情况下,是轮询使用资源,不是真正意义上的并行。

    线程分类

    线程分为CPU线程与用户线程

    CPU线程

    比如4核心CPU,那么CPU能够同时执行四个线程,并且能够并行运行(同时进行运算)

    用户线程

    间接使用CPU内核运算的线程,用户线程很多时候没有真正意义的并行

    一个计算机其中一个内核,可能是1秒内,运算了2个不同的用户任务,这里可以看作是两个用户线程,实际是一个CPU内核线程实现

    一般用户线程指的是图中的子线程,两个用户线程占用同一个内核资源的时候,不能真正意义的并行运算

  • 相关阅读:
    Unity3D性能优化--- 收集整理的一堆
    Unity5.3官方VR教程重磅登场-系列7 优化VR体验
    VR沉浸体验的要求
    Unity5中叹为观止的实时GI效果
    浅谈控制反转与依赖注入[转]
    unity 使用unityaction 需要注意的问题[转]
    c# orm框架 sqlsugar
    unity Instantiate设置父级物体bug
    宝塔面板 使用mongodb注意事项
    unity中gameObject.SetActive()方法的注意事项。
  • 原文地址:https://www.cnblogs.com/Narule/p/13154060.html
Copyright © 2011-2022 走看看