WaitSleepJoin ThreadState是否也表示由于等待I / O操作而阻塞线程时的状态?

时间:2016-05-22 14:38:37

标签: c# .net multithreading clr

关于CLR在托管代码中创建的线程的状态,我有两个问题。

  1. 似乎没有线程状态来表示等待的线程 阻止的I / O操作。

    例如等待磁盘驱动程序 响应从磁盘读取的字节流,或等待 网络端口,用于从另一个进程或到达的字节流 计算机。

    为什么?或者如果不是这样的话,请你告诉我 ThreadState枚举的哪个成员代表这一点 状态?

    我最接近的是WaitSleepJoin州,但是它 文档内容如下:

    WaitSleepJoin

    线程被阻止。这可能是调用Thread.Sleep或Thread.Join请求锁定的结果 - 例如,通过 调用Monitor.Enter或Monitor.Wait - 或等待线程 同步对象,如ManualResetEvent。

  2. 请从上面复制的文档摘录中获取 考虑这句话:

    ...请求锁定 - 例如,通过调用Monitor.Enter或Monitor.Wait

    如果线程只是请求锁定,为什么会阻塞?是否 该文件实际上暗示,“在等待锁定时, 目前由另一个线程持有,在一个待发布的资源上。在 换句话说,在SpinWait期间?换句话说,在等待当前锁的所有者发出脉冲时?“

0 个答案:

没有答案