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

Linux 用户线程到内核线程的多对一映射,linux,multithreading,process,linux-kernel,operating-system,Linux,Multithreading,Process,Linux Kernel,Operating System,据我所知,在多对一映射中,一个内核线程管理多个用户线程。此内核线程帮助用户线程进行系统调用等。我不理解的是: 如果一个阻塞调用可以实现,为什么我们要使用多对一映射 是否阻止内核线程管理的所有用户线程 在用户线程到内核线程的多对一映射中,执行以下操作 用户线程必须来自同一进程 在多对一映射中,所有用户线程都可以在不同的服务器上运行吗 内核/CPU同时运行还是一次只运行其中一个 1) 如果一个阻塞调用可以实现,为什么我们要使用多对一映射 是否阻止内核线程管理的所有用户线程 具有一对一映射的缺点是,当

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

  • 如果一个阻塞调用可以实现,为什么我们要使用多对一映射 是否阻止内核线程管理的所有用户线程
  • 在用户线程到内核线程的多对一映射中,执行以下操作 用户线程必须来自同一进程
  • 在多对一映射中,所有用户线程都可以在不同的服务器上运行吗 内核/CPU同时运行还是一次只运行其中一个
  • 1) 如果一个阻塞调用可以实现,为什么我们要使用多对一映射 是否阻止内核线程管理的所有用户线程

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

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

    3) 在多对一映射中,所有用户线程都可以在不同的服务器上运行吗 内核/CPU同时运行还是一次只运行其中一个


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

    谷歌怎么了?例如:
    如果进行了阻塞系统调用,那么整个进程将阻塞
    因为单个内核线程只能在单个CPU上运行,多对一模型不允许在多个CPU之间拆分单个进程,我建议你阅读所有的子问题,以确保你在谷歌或其他地方找到了所有问题的答案。仅供参考,我在这里发布的谷歌上找不到它们。此外,子问题之间也有一定的关联。实际上,我已经提供了所有问题的答案:1<代码>线程管理由用户空间中的线程库处理,这非常有效。
    。2. <代码>多线程应用程序在单个进程中有多个线程,每个线程都有自己的程序计数器…
    3<因为单个内核线程只能在单个CPU上运行…
    。是的,不同问题的详细程度不同,但这是因为您同时拥有多个问题。当您尝试使用谷歌搜索时,您肯定看到了一些关于您的问题的信息。如果你还不了解这些信息,最好在你的问题帖子中提问,并问你到底不了解什么。这样你就可以明确地表明你的努力,所以就没有理由投反对票。同样,这样你可以得到更详细的答案。用谷歌搜索答案是没有用的——这是所有其他学生都做过的。这个问题大约每月出现一次。这是一个“为我完成所有的任务”:(消除了我所有的疑虑。谢谢。