2

对于内核级线程,当一个线程阻塞某些 I/O 时,另一个线程可以自由运行,但在用户级线程中,如果一个线程被阻塞会发生什么?

该进程是否会保持阻塞,即没有其他线程将执行或将安排另一个线程运行。究竟会发生什么?

4

1 回答 1

3

用户级线程是按顺序执行的用户代码片段——一个线程运行一段时间,然后将控制权转移到另一个线程,依此类推。如果其中一个线程进行了阻塞的系统调用,那么整个进程都会阻塞。用户级线程在内核看来就像一个单线程进程。不可能在多个 CPU 上进行并发调度。

内核级线程的主要优点是它们彼此独立运行,并且可以在不同的 CPU 上调度。如果一个阻塞,其他的继续执行。

于 2012-05-29T14:21:12.473 回答