在 Ruby 2.2 release notes 中提到,除了 Symbol GC 和 Incremental GC 外,还实验性的引入 vfork 这两天看到几篇文章
fork 和 vfork 的差别: fork 是 创建一个子进程,并把父进程的内存数据 copy 到子进程中。 vfork 是 创建一个子进程,并和父进程的内存数据 share 一起用。 这两个的差别是,一个是 copy,一个是 share。(关于 fork,可以参看酷壳之前的《一道 fork 的面试题》)
你 man vfork 一下,你可以看到,vfork 是这样的工作的,
1)保证子进程先执行。 2)当子进程调用 exit() 或 exec() 后,父进程往下执行。
但是目前 vfork 还是存在一些风险