gpt4 book ai didi

c - 重新启动 fork 进程中的线程

转载 作者:IT王子 更新时间:2023-10-29 00:33:31 25 4
gpt4 key购买 nike

我知道没有标准的方法来 fork 多线程进程。但是,我想到一件事,那就是因为 fork 进程是精确的副本或原始进程,所以线程堆栈会在那里。

有没有人知道如何从 fork 进程中的最后执行状态重新启动线程。为简单起见,我们可以假设在 fork 时没有获得锁。例如, fork 是在两个障碍之间完成的。

最佳答案

线程执行状态不仅仅是栈中的数据。也是CPU寄存器组,丢失了。

do_fork() 系统调用只是不从执行系统调用 do_fork 的线程复制任何其他线程-> copy_process并且在 line 1181 处有一个对 copy_thread 的调用

retval = copy_thread(clone_flags, stack_start, stack_size, p, regs);

关于c - 重新启动 fork 进程中的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6597143/

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