在分叉进程中重新启动线程

我知道没有标准的方法来分支多线程进程.但是,我想到的一件事是,由于分叉进程是精确的副本或原始进程,所以线程堆栈就在那里.

有没有人知道如何在分叉进程中从上次执行状态重新启动线程.为简单起见,我们可以假设在分叉时没有获得的锁.比如说,分叉是在两个障碍之间完成的.

最佳答案
线程执行状态不仅是堆栈中的数据.它也是一组CPU寄存器,丢失了.

do_fork()系统调用只是不复制线程中的任何其他线程,执行系统调用do_fork – > copy_process并且在line 1181有一次copy_thread调用

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

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...