• 线程与进程


    线程与进程

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

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

    以下是个人理解

    线程与进程之间的关系

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

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

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

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

    计算机与人类比

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

    喝水(drink) 另一个线程

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

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

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

    线程分类

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

    CPU线程

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

    用户线程

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

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

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

  • 相关阅读:
    PAT (Advanced Level) 1060. Are They Equal (25)
    PAT (Advanced Level) 1059. Prime Factors (25)
    PAT (Advanced Level) 1058. A+B in Hogwarts (20)
    PAT (Advanced Level) 1057. Stack (30)
    PAT (Advanced Level) 1056. Mice and Rice (25)
    PAT (Advanced Level) 1055. The World's Richest (25)
    PAT (Advanced Level) 1054. The Dominant Color (20)
    PAT (Advanced Level) 1053. Path of Equal Weight (30)
    PAT (Advanced Level) 1052. Linked List Sorting (25)
    PAT (Advanced Level) 1051. Pop Sequence (25)
  • 原文地址:https://www.cnblogs.com/Narule/p/13154060.html
Copyright © 2020-2023  润新知