Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
对于内核级线程,当一个线程阻塞某些 I/O 时,另一个线程可以自由运行,但在用户级线程中,如果一个线程被阻塞会发生什么?
该进程是否会保持阻塞,即没有其他线程将执行或将安排另一个线程运行。究竟会发生什么?
用户级线程是按顺序执行的用户代码片段——一个线程运行一段时间,然后将控制权转移到另一个线程,依此类推。如果其中一个线程进行了阻塞的系统调用,那么整个进程都会阻塞。用户级线程在内核看来就像一个单线程进程。不可能在多个 CPU 上进行并发调度。
内核级线程的主要优点是它们彼此独立运行,并且可以在不同的 CPU 上调度。如果一个阻塞,其他的继续执行。