gpt4 book ai didi

c - N<->1 线程模型如何工作?

转载 作者:行者123 更新时间:2023-11-30 20:56:20 25 4
gpt4 key购买 nike

继续question ,这是对N-1线程模型的附加查询。

enter image description here

据悉,在设计应用程序之前,需要注意线程模型的选择。

在 N-1 线程模型中,单个内核线程可代表每个用户进程工作。操作系统调度程序为该内核线程提供单个 CPU 时间片。

在用户空间中,程序员将使用 POSIX pthread 或 Windows CreateThread() 在用户进程中生成多个线程。当程序员使用 POSIX pthread 或 Windows CreateThread() 时,内核知道用户态线程,并且调度程序会考虑每个线程进行处理器时间分配。所以,这意味着每个用户线程都会获得一个内核线程。

我的问题:

那么,N-1 线程模型是如何存在的呢?这将是 1-1 线程模型。请澄清。

最佳答案

In user space, programmer would use either POSIX pthread or Windows CreateThread() to spawn multiple threads within a user process. As the programmer used POSIX pthread or Windows CreateThread() the kernel is aware of the user-land threads and each thread is considered for processor time assignment by the scheduler. SO, that means every user thread will get a kernel thread.

这就是一对一线程的工作原理。

事实并非一定如此。平台可以实现pthread_createCreateThread或它提供的任何其他“创建线程”函数来执行它想要的任何操作。

My question:

So, How does N-1 threading model looks possible to exist? It would be 1-1 threading model.
Please clarify.

正如您在问题开头所解释的那样——当程序员创建一个线程时,它不是创建内核知道的线程,而是创建用户态调度程序知道的线程,仍然使用单个内核整个过程的线程。

关于c - N<->1 线程模型如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26331719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com