gpt4 book ai didi

windows - 创建线程与 fork()

转载 作者:可可西里 更新时间:2023-11-01 13:27:52 35 4
gpt4 key购买 nike

fork() 和 CreateThread 之间有什么关系吗?有没有什么CreateThread 内部调用 fork()?

最佳答案

在 NT 中,基本的工作单元称为线程(即 NT 调度线程,而不是进程。)。用户线程在进程的上下文中运行。当您调用 CreateThread 时,您请求 NT 内核在您的进程上下文中分配一个工作单元(您也有纤维,这些纤维基本上是您可以自己安排的线程,但这超出了您的问题的主题)。

当您调用 CreateThread 时,您为该函数提供了一个入口点,该入口点将在该函数被调用后运行。代码必须在进程的虚拟空间内,页面必须有执行权限。简单地说,你给了一个函数指针。 ;)

fork() 是一个 UNIX 函数,它请求内核创建正在运行的进程的副本。父进程获取子进程的pid,子进程获取0(这样你就知道你是谁了)。

如果你想在 Windows 中创建一个进程,你可以调用 CreateProcess 函数,但它的行为不像 fork()。原因是大多数时候您将创建线程,而不是进程。

如你所见,CreateThread和fork之间没有任何关系。

关于windows - 创建线程与 fork(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619019/

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