线程

为什么 .NET8线程池 容易引发线程饥饿

最近时间相对比较宽裕,多写点文章来充实社区吧,这篇文章主要还是来自于最近遇到的几例线程饥饿(Task.Result)引发的一系列的反思和总结,我觉得.NET8容易引发饥饿的原因,更多的在于异步回调之后底层会反复的将结果丢到线程池所致,因为数据进线程池容易,再用

线程池 线程 t8 2025-01-08 09:31  4

聊一聊 C#线程池 的线程动态注入 (中)

上一篇我们用Thread.Sleep的方式演示了线程池饥饿场景下的动态线程注入,可以观察到大概 1s 产生1~2个新线程,很显然这样的增长速度扛不住上游请求对线程池的DDOS攻击,导致线程池队列越来越大,但C#团队这么优秀,能优化的地方绝对会给大家尽可能的优化

线程池 线程 聊一聊 2024-12-25 08:44  5

聊一聊 C#线程池 的线程动态注入 (上)

在线程饥饿的场景中,我们首先要了解的就是线程是如何动态注入的?其实现如今的ThreadPool内部的实现逻辑非常复杂,而且随着版本的迭代内部逻辑也在不断的变化,有时候也没必要详细的去了解,只需在稍微宏观的角度去理解一下即可,我准备用三篇来详细的聊一聊

线程池 线程 聊一聊 2024-12-24 16:43  5

聊一聊 C#前台线程 如何阻塞程序退出

这篇文章起源于我的里的一位朋友提的问题:后台线程的内部是如何运转的 ?,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond=false 的线程导致的。恰巧在我分析的350+

线程 聊一聊 前台线程 2024-12-23 09:13  2

.NET 线程(Thread)底层原理浅谈

线程,是操作系统能够进行运算调度的最小单位。你可以把它想象成程序中的一个执行流,每个线程都有自己独立的堆栈空间和程序计数器,但代码区是共享的。这意味着不同的线程可以执行同样的函数,但它们各自的数据是独立的。

thread 线程 主程序 2024-12-01 11:50  6