假设我在C#应用程序中生成了3个线程:T1,T2和T3,并为每个线程发出Run调用。
通常,处理器将以循环方式调度线程(单个处理器和所有线程具有相同的优先级)。
但是,假设Thread T1发出阻止Web服务调用。
它会立即被抢占还是在时间片完成后被抢占?
基本上发布Web服务网络调用(或任何其他调用)会导致线程处于阻塞状态吗?
答案 0 :(得分:2)
一旦线程发出阻塞系统调用(对IO的任何请求),它就会被暂停,并且只有在系统调用完成时才会标记为“就绪”(尚未运行)。
所以是的,它会立即被抢先一步。