如果一个线程忙于I/O,将会阻塞整个进程

在多线程进程中,如果一个线程忙于I/O,整个进程是否会被阻塞?如果一个线程忙于I/O,将会阻塞整个进程

AFAIK,完全取决于程序员,他们如何管理程序中的线程。 如果另一个线程没有I/O,处理器将永远不会闲置&开始执行此线程。但是,在拆分线程中进行处理以使一个线程等待另一个线程的结果,整个过程将被阻止。

如果需要添加更多信息,请发表评论。 是否存在其他解释?

回答:

如果进程只有一个线程,那么是的。

如果进程有多个线程,那么如果操作系统支持多线程,则通常不会。

这个问题也可以通过用户线程的底层实现来解决。有对multihreading车型不同的车型,以实现用户线程必须将它们映射到一个内核线程:

  • 多到一:许多用户线程一个内核线程

  • One-to-One:每个用户线程都分配给一个内核线程。

  • 多对多:许多用户线程在不同的内核线程上被拆分。

在多到一个情况下,单个块操作(系统调用)的线程可以块整个过程内。 一对一模型中不存在此缺点。

以上是 如果一个线程忙于I/O,将会阻塞整个进程 的全部内容, 来源链接: utcz.com/qa/257117.html

回到顶部