![]() |
1
6
这是最大的一个。也就是说,有一个原因是.NET中的线程池在3.5中允许每个内核有这么多线程 the default was 250 worker threads per core in the system 但是,我认为,从代码管理的角度来看,减少阻塞线程的数量是值得的。每一个被阻塞的线程都是一个操作,在某个时刻,该操作应该返回并被解除阻塞。有许多这样的代码意味着您需要管理一组相当复杂的代码。保持这个数字的减少将有助于保持代码库的简单性和可维护性。
现在,这常常是一种痛苦。这在很大程度上取决于场景。这个
improving this situation in the future . 他们的目标是使异步代码更易于编写,以便更频繁地使用它。 |
![]() |
2
0
除了来自被阻塞线程可能持有锁的任何资源外,还需要考虑线程池的大小。如果您已经达到最大线程池大小(如果我正确地记得.NET 4是最大线程数是每CPU 100),那么在至少一个线程被释放之前,您将无法在线程池上运行任何其他操作。 |
![]() |
3
0
另一方面,拥有大量线程必然会使任务调度程序陷入困境,因为它必须跟踪线程(自上一个勾号以来,线程已变得可运行,依此类推)。 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
![]() |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
![]() |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
![]() |
rhymes · 如何让线程操作相同的java列表 2 年前 |