4
.NET中辅助线程和I / O线程的简单描述
在.NET中很难找到工作线程和I / O线程的详细而简单的描述 对于该主题,我很清楚(但在技术上可能不准确): 辅助线程是应使用CPU进行工作的线程。 I / O线程(也称为“完成端口线程”)应使用设备驱动程序进行工作,并且实质上“不执行任何操作”,仅监视非CPU操作的完成情况。 不清楚的是: 尽管ThreadPool.GetAvailableThreads方法返回两种类型的可用线程数,但似乎没有公共API可以为I / O线程安排工作。您只能在.NET中手动创建辅助线程? 似乎单个I / O线程可以监视多个I / O操作。是真的吗 如果是这样,为什么默认情况下ThreadPool有这么多可用的I / O线程? 在某些文本中,我读到了由I / O线程执行I / O操作完成后触发的回调。是真的吗 考虑到此回调是CPU操作,这不是工作线程的工作吗? 更具体地说-ASP.NET异步页面是否使用I / O线程?将I / O工作切换到单独的线程而不是增加工作线程的最大数量时,性能上的好处到底是什么?是因为单个I / O线程会监视多个操作吗?还是Windows在使用I / O线程时进行更有效的上下文切换?