我知道没有标准的方法来分支多线程进程。但是,我想到的一件事是,由于分叉进程是精确的副本或原始进程,所以线程堆栈就在那里。
有没有人知道如何在分叉进程中从上次执行状态重新启动线程。为简单起见,我们可以假设在分叉时没有获得锁定。比方说,分叉是在两个障碍之间完成的。
答案 0 :(得分:3)
线程执行状态不仅是堆栈中的数据。它也是一组CPU寄存器,丢失了。
do_fork()
系统调用只是不复制线程中的任何线程,执行系统调用do_fork - > copy_process,line 1181
retval = copy_thread(clone_flags, stack_start, stack_size, p, regs);
答案 1 :(得分:1)
答案 2 :(得分:0)
我猜你在谈论continuations。我在google上看到了一些点击(我要求“继续c”),但我不能推荐任何链接,因为我不知道你的具体需求。