zoukankan      html  css  js  c++  java
  • .net中的线程

    1. 目前,CLR直接使用了Windows的线程,然而将来可能会分离出来,提供比Windows线程更好的功能和性能

    2. 创建线程和销毁线程的动作相当的昂贵:

    创建线程必须分配并初始化一个线程核心对象,每个线程的用户模式堆栈分配1M的保留地址空间,核心模式堆栈分配12K的保留空间;在线程创建后,Windows立刻通知进程中的每个DLL一个新线程建好了;同样销毁线程也需要通知所有的DLL并释放那些为用户模式堆栈和核心模式堆栈保留的地址空间

    3. 运行时线程间的切换代价也不小

    切换线程时:1). 操作系统进入Kernal mode 2)把CPU寄存器保存入当前执行线程的kernal 对象 3)要求一个spin锁,决定下一步执行哪个线程,释放spin锁 4)从准备执行的线程核心对象载入CPU寄存器的值 5)操作系统离开核心模式

  • 相关阅读:
    跨域与跨域访问
    bootstrap.min.css.map作用
    CSS
    http协议
    djngo未整理
    redis安装及配置
    git 基础
    yum安装报错
    Go语言与区块链开发(转载)
    electron实现MessageBox
  • 原文地址:https://www.cnblogs.com/lbsong/p/1658880.html
Copyright © 2011-2022 走看看