gpt4 book ai didi

ruby - Ruby 中的写时复制 fork

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:14 27 4
gpt4 key购买 nike

我正在学习进程 fork ,以及它是如何在 Ruby 中具体实现的。在我的阅读中,我了解了“写时复制”行为。据我了解,在子线程尝试进行写操作之前,这基本上不会复制内存。这是否意味着当子进程确实尝试写入时,父内存被复制和修改,并且原始内存保持不变(因此父内存不受子进程的影响?)。谢谢。

最佳答案

是的。写时复制意味着只有两个进程相同的内存页保持共享。如果子进程或父进程写入共享页面之一,写入将被拦截,页面将被复制,写入将发生在子进程/父进程独有的新页面上。

值得一提的是,这与 Ruby 没有任何关系。 Ruby 使用底层系统的 fork 系统调用,它在 Linux 和大多数 UNIX 上具有写时复制行为。

关于ruby - Ruby 中的写时复制 fork ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21862857/

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