![]() |
1
3
里面什么都没有
the
这个共享的地址空间允许以后使用轻量级IPC,但进程本身并不是更精简的。 |
![]() |
2
4
实际上,在概念层面上,Linux内核对进程或线程一无所知,只知道“任务”。 Linux任务可以是进程、线程或介于两者之间的东西。(顺便说一下,这意味着vfork()创建的奇怪子代完全适合Linux“任务”范式)。
或者新任务可以选择拥有各自资源的副本。从2.6.16开始,它们可以在启动后执行,请参见取消共享(2)。 例如,vfork()和fork()调用之间的唯一区别是vfork()具有CLONE-VM和CLONE-vfork集。CulONYVM使其共享其父内存(与线程共享内存的方式相同),而C克隆OnFoFor则在父进程释放内存映射(通过调用ExvEvE()或μExt())时生成父块。 注意,Linux并不是唯一一个以这种方式泛化进程和线程的操作系统。计划9具有rfork()。 |
![]() |
3
1
我知道这三个clone、fork和vfork之间的区别在于标志,因为最后这三个都调用内核中的do_fork() fork()-->C_lib-->sys_fork()-->do_fork() vfork()-->C_lib-->sys_vfork()-->do_fork() clone()-->C_lib-->sys_clone()-->do_fork() 现在让我们看看克隆标志 克隆的主要用途是实现线程,在线程中内存空间共享,然后堆栈。除了与fork和vfork相同的参数外,clone还将函数指针作为参数,在创建子进程时立即调用该参数。 |
![]() |
juiceb0xk · 运行安装程序时更改程序包名称。py公司 7 年前 |
![]() |
vince · 角反应形式的深度复制? 7 年前 |
![]() |
rener172846 · 如何在Haxe中克隆动态对象? 7 年前 |
|
Hemispherr · git克隆的权限被拒绝 7 年前 |
![]() |
Jason · 克隆模板时如何更改内部div? 7 年前 |
![]() |
yuppo · git属性中忽略了负面模式 7 年前 |