摘要: .NET本身就是一个基于中间件(middleware)的框架,它通过一系列的中间件组件来处理HTTP请求和响应。在之前的文章[《.NET源码解读kestrel服务器及创建HttpContext对象流程》](https://www.cnblogs.com/Z7TS/p/17459777.html)中, 阅读全文
posted @ 2023-06-29 17:11 Broder 阅读(1507) 评论(0) 推荐(10) 编辑
摘要: .NET本身就是一个基于中间件(middleware)的框架,它通过一系列的中间件组件来处理HTTP请求和响应。因此,本篇文章主要描述从用户键入请求到服务器响应的大致流程,并深入探讨.NET通过kestrel将HTTP报文转换为HttpContext对象。 通过本文,您可以了解以下内容: * htt 阅读全文
posted @ 2023-06-16 10:42 Broder 阅读(2270) 评论(13) 推荐(30) 编辑
摘要: Configuration组件是.NET中一个核心的、非常重要的组件。它提供了一种方便的机制,用于从配置文件、环境变量、命令行参数等各种数据源中读取和配置应用程序,以满足不同环境下应用程序的需求。 在本篇文章中,将会介绍Configuration的基本用法,并通过源码探究.NET中Configura 阅读全文
posted @ 2023-05-30 22:57 Broder 阅读(1860) 评论(4) 推荐(21) 编辑
摘要: 依赖注入 (DI) 是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩展性和可测试性。在日常工作中,我们一定遇见过这些问题或者疑惑。 Singleton服务为什么不能依赖Scoped服务? 多个构造函数的选择机制? 源码是如何识别循环依赖的? 虽然我们可 阅读全文
posted @ 2023-05-17 16:14 Broder 阅读(4704) 评论(21) 推荐(36) 编辑
摘要: ## 一、线程锁和分布式锁 > 线程锁通常在单个进程中使用,以防止多个线程同时访问共享资源。 在我们.NET中常见的线程锁有: * 自旋锁:当线程尝试获取锁时,它会重复执行一些简单的指令,直到锁可用 * 互斥锁: Mutex,可以跨进程使用。Mutex 类定义了一个互斥体对象,可以使用 WaitOn 阅读全文
posted @ 2023-04-28 15:17 Broder 阅读(2954) 评论(4) 推荐(22) 编辑
摘要: 一、引子·功能需求 我们创建了一个 School 对象,其中包含了教师列表和学生列表。现在,我们需要计算教师平均年龄和学生平均年龄。 //创建对象 School school = new School() { Name = "小菜学园", Teachers = new List<Teacher>() 阅读全文
posted @ 2023-04-21 15:11 Broder 阅读(1773) 评论(3) 推荐(10) 编辑
摘要: #原文地址 https://mp.weixin.qq.com/s/EpGGQKPKaIrz_4f4NEbW1g #目录 基本调度单元 IThreadPoolWorkItem 实现类的实例。 Task 全局队列 本地队列 偷窃机制 线程注入实验 .NET 5 实验一 默认线程池配置 .NET 5 实验 阅读全文
posted @ 2023-02-08 14:03 Broder 阅读(199) 评论(0) 推荐(0) 编辑
摘要: #引子 前两天刷抖音,看见了这样一个问题。 问题:容器化不做虚拟内核,会有什么弊端?Java很多方法会跟CPU的核数有关,这个时候调用系统函数,读到的是宿主机信息,而不是我们限制资源的大小。 思考:在我们.NET中是否也会出现这种问题呢? #环境准备 1. 准备程序 在我们.NET中,并行编程(Pa 阅读全文
posted @ 2023-02-07 14:48 Broder 阅读(1640) 评论(10) 推荐(5) 编辑
摘要: # 引子 > 问题:给定一串数字{1,2,5,7,15,24,33,52},如何在时间复杂度为O(1)下,对数据进行CURD? **数组:**我创建一个Length为53的数组,将元素插入相同下标处,是不是就可以实现查找复杂度O(1)了?但是添加修改元素时间复杂度为O(n)了。 **链表:**添加删 阅读全文
posted @ 2022-11-17 14:37 Broder 阅读(1564) 评论(6) 推荐(9) 编辑
摘要: # BFS模板-宽度优先搜索(Breadth First Search) ## 1.模板 ````C# /// /// BFS遍历 /// /// 开始节点 /// 目标节点 /// public int BFS(Node start, Node target) { //利用队列先进先出(FIFO) 阅读全文
posted @ 2022-11-15 11:31 Broder 阅读(246) 评论(0) 推荐(3) 编辑