zoukankan      html  css  js  c++  java
  • 线程

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

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

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

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

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

    线程的定义

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

    线程和进程的关系

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

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

     线程的结构

     线程的特点:

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

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

    线程优势:

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

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

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

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

    线程的实现机制

    用户级线程:

     用户级线程的优点:

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

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

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

    核心级线程:

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

    优点:

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

    缺点:

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

  • 相关阅读:
    eclipse如何与git 配合工作。
    git托管代码(二)
    PPC2003 安装 CFNET 3.5成功
    我的Window Mobile WCF 項目 第三篇 WM窗体设计
    我的Window Mobile WCF 項目 第一篇Mobile开发和WinForm开发的区别
    我的Window Mobile WCF 項目 第七天
    我的Window Mobile WCF 項目 第二篇 WindowsMobile访问WCF
    WCF 用vs2010 和 vs2008的简单对比测试
    vs2010beta1 和 搜狗输入法 冲突,按下 Ctrl 键就报错,重装搜狗解决
    我的Window Mobile WCF 項目 第六天 (二)
  • 原文地址:https://www.cnblogs.com/fate-/p/12810235.html
Copyright © 2011-2022 走看看