共计 3 篇文章

《CLR Via C#》读书笔记:27.计算限制的异步操作

一、CLR 线程池基础 一般来说如果计算机的 CPU 利用率没有 100% ,那么说明很多进程的部分线程没有运行。可能在等待 文件/网络/数据库等设备读取或者写入数据,又可能是等待按键、鼠标移动等事件。 执行 I/O 限制的操作时,操作系统通过设备驱动程序通知硬件干活,而 CPU 处于一种空闲状态。而在现代应用程序当中,使用线程池来执行计算限制的操作,而不是手动创建线程。 每个 ...

《CLR Via C#》读书笔记:26.线程基础

一、线程开销 操作系统创建线程是有代价的,其主要开销在下面列举出来了。 内存开销 线程内核对象 拥有线程描述属性与线程上下文,线程上下文占用的内存空间为 x86 架构 占用 700 字节、x64 架构 1240 字节 、ARM 架构 350 字节。 线程环境块(TEB) TEB 消耗一个内存页,占用 ...

《CLR Via C#》读书笔记:24.运行时序列化

一、什么是运行时序列化 序列化的作用就是将对象图(特定时间点的对象连接图)转换为字节流,这样这些对象图就可以在文件系统/网络进行传输。 二、序列化/反序列化快速入门 一般来说我们通过 FCL 提供的 BinaryFormatter 对象就可以将一个对象序列化为字节流进行存储,或者通过该 Formatter 将一个字节流反序列化为一个对象。 FCL 的序列化与反序列化 序列化操作: public MemoryStream SerializeObj(object sourceObj) ...