C#多线程并行编程--第一课了解一下
程序员文章站
2022-06-28 19:50:19
1.空间上的开销 Thread本身就是操作系统的概念 Thread是内核数据结构,其中有osid,context=>cpu寄存器的里面的一些变量..30ms Thread 环境块 用户模式堆栈 内存溢出的一个有异常【堆栈溢出】 一个线程分配1M的堆栈空间【参数,局部变量】 内核模式堆栈;在CLR(公 ......
1.空间上的开销
- thread本身就是操作系统的概念
- thread是内核数据结构,其中有osid,context=>cpu寄存器的里面的一些变量..30ms
- thread 环境块
- tls(thread本地存储),execptionlist的信息
- 查看线程的工具windb:
- 用户模式堆栈 内存溢出的一个有异常【堆栈溢出】
- 一个线程分配1m的堆栈空间【参数,局部变量】
- 内核模式堆栈;在clr(公共执行语言)的线程操作,包括线程同步,大多数都是调用底层的win32函数,用户模式的参数需要传递到内核模式
2.时间的开销
- 我们的线程启动的时候,会加载很多的dll【托管和非托管】,exe,资源,元数据
-
开启一个thread,销毁一个thread都会通知进程中过的dll,attach,detach标志位
- 通知dll的目的就是给thread做准备工作,比如销毁,让这些dll做资源清理
- 时间片切换:逻辑处理器4个可以提供4个thread并行执行
-
如果有5个thread 并行,就一定会有一个thread休眠30ms
以上是看视频的笔记,有些不是特别的懂,给你自己做个笔记,以后好复习!
上一篇: 打卡还来得及