.NET中关于阻塞调用的线程调度

假设我在C#应用程序中生成了3个线程:T1,T2和T3,并为每个线程发出Run调用.

通常,处理器将以循环方式调度线程(单个处理器和所有线程具有相同的优先级).

但是,假设Thread T1发出阻止Web服务调用.

它会立即被抢占还是在时间片完成后被抢占?

基本上发布Web服务网络调用(或任何其他调用)会导致线程处于阻塞状态?

最佳答案 一旦线程发出阻塞系统调用(对IO的任何请求),它就会被挂起,并且只有在系统调用完成时才会标记为“就绪”(尚未运行).

所以是的,它会立即被抢先一步.

点赞