欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#多线程并行编程--第一课了解一下

程序员文章站 2022-03-20 12:56:21
1.空间上的开销 Thread本身就是操作系统的概念 Thread是内核数据结构,其中有osid,context=>cpu寄存器的里面的一些变量..30ms Thread 环境块 用户模式堆栈 内存溢出的一个有异常【堆栈溢出】 一个线程分配1M的堆栈空间【参数,局部变量】 内核模式堆栈;在CLR(公 ......

1.空间上的开销

  • thread本身就是操作系统的概念
  • thread是内核数据结构,其中有osid,context=>cpu寄存器的里面的一些变量..30ms
  • thread 环境块
  1. tls(thread本地存储),execptionlist的信息 
  2. 查看线程的工具windb:
  • 用户模式堆栈  内存溢出的一个有异常【堆栈溢出】
  • 一个线程分配1m的堆栈空间【参数,局部变量】
  • 内核模式堆栈;在clr(公共执行语言)的线程操作,包括线程同步,大多数都是调用底层的win32函数,用户模式的参数需要传递到内核模式

2.时间的开销

  •  我们的线程启动的时候,会加载很多的dll【托管和非托管】,exe,资源,元数据

    C#多线程并行编程--第一课了解一下

  • 开启一个thread,销毁一个thread都会通知进程中过的dll,attach,detach标志位

  • 通知dll的目的就是给thread做准备工作,比如销毁,让这些dll做资源清理
  • 时间片切换:逻辑处理器4个可以提供4个thread并行执行
  • C#多线程并行编程--第一课了解一下

    如果有5个thread 并行,就一定会有一个thread休眠30ms

以上是看视频的笔记,有些不是特别的懂,给你自己做个笔记,以后好复习!