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

时间:2011-11-22 12:18:12

标签: .net multithreading

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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