zoukankan      html  css  js  c++  java
  • 线程

    为什么要提出线程的概念?

    进程作为计算机的基本计算调度单位,在现代操作系统的发展中出现了一些问题:

      进程的并发执行使得进程调度的工作量日益增大,系统将大量精力耗费在进程调度和分配内存上,系统效率得不到有效的提高。

      进程之间的通信延迟很大,使得频度较高的通信过程效率低下。

      进程间的并行度没有人们预想的效果好

    线程的定义

    线程也叫轻型进程,是一个可执行的实体单元,它代替以往的进程,称为现代操作系统中处理机调度的基本单位。

    线程和进程的关系

    1.线程是进程的一个组成部分,线程由进程创建,因此一个进程中至少存在一个线程,线程还可以创建其他线程。

    2.进程依然是资源分配和保护的基本单位,线程只能在进程的地址空间活动,线程只能使用其所在进程的资源。

     线程的结构

     线程的特点:

    1.线程作为基本的调度单位,其状态有:就绪、运行、阻塞等;

    2.进程中所有线程共享进程的存储空间和分配资源

    线程优势:

    *创建和撤销线程的开销非常小。不需要向系统请求独立的地址空间及进行相关的地址空间复制(例如父子进程),因此创建和撤销线程系统的开销要远小于进程。

    *切换迅速。线程的上下文环境要比进程简单的多,因此线程间的切换远比进程快的多。

    *通信效率高。同一进程中的线程由于共享同一地址空间,通信时不需要借助内核功能。

    *并发度高。在多处理机系统中,对进程的个数是有所限制的,但对线程的个数理论上不存在限制,更发挥了多处理机系统的优势。

    线程的实现机制

    用户级线程:

     用户级线程的优点:

    1、核心不用管理线程的切换,处理机在两个线程间切换时不用进入到核心态执行,节省了用户态与核心态之间切换的开销。

    2、用户级线程的管理机制可以运行在各种操作系统中,方便、灵活。

    缺点:当线程执行系统调用时,整个进程都被阻塞,不能充分利用多处理机。

    核心级线程:

     核心可以调度一个进程中的多个线程同时运行,当某线程发生阻塞,可以调度其他线程执行。

    优点:

    充分发挥了多处理机的并行工作能力。

    缺点:

    在同一进程间的线程控制权转移时,用户级与核心级的切换开销很大。

  • 相关阅读:
    红楼【建筑位置】
    红楼【人物关系】
    jenkins【shared-libraries】
    linux 安装mysql8.0 tar.xz
    MySQL 输入字符串对日期进行模糊查询
    解决kali linux 和 win10 双系统时间不一致问题
    linux idea桌面图标
    linux卸载openjdk11
    tar.xz解压
    pandas模块高性能使用方法总结
  • 原文地址:https://www.cnblogs.com/fate-/p/12810235.html
Copyright © 2011-2022 走看看