用户线程到内核线程的多对一映射



据我所知,在多对一映射中,一个内核线程管理多个用户线程。这个内核线程帮助用户线程进行系统调用等。我不明白的是:

  1. 如果一个阻塞调用阻止内核线程管理的所有用户线程
  2. 在用户线程到内核线程的多对一映射中,执行用户线程必须来自同一进程
  3. 在多对一映射中,是否可以在不同的上运行所有用户线程核心/CPU同时运行还是一次只运行其中一个

1) 如果一个阻塞调用阻止内核线程管理的所有用户线程?

一对一映射的缺点是,当线程之间有上下文切换时,会涉及内核。内核的参与导致了一些开销。

2) 在用户线程到内核线程的多对一映射中,执行所有操作用户线程必须来自同一进程?

3) 在多对一映射中,是否可以在不同的上运行所有用户线程核心/CPU同时运行还是一次只运行其中一个?

多线程映射的主要特点是,整个线程上下文切换由您使用的用户级线程库维护,就内核而言,它不知道您有多少线程,它给进程一个执行的时间片,由线程库来控制任何线程。由此,您可以很容易地看到,在任何时刻的多对一映射中,只有进程的一个线程可以获得控制。

最新更新