fork(2)在Cygwin下是kludgey,因为Windows进程模型不容易让它发生.Cygwin可能允许它的产生使用它,但是你将遭受严重的性能损失,因为Cygwin必须手动模拟所有东西 - 包括复制可执行数据,复制打开的句柄等.
根据霰弹枪使用的数量fork(2),这种模拟可能会很痛苦,也可能相对较小.
这是GameDev.net上讨论forkWin32 缺乏设施的好线程.他们提出了一些我没有耐心或平台可访问性的东西来进行调查,但同时听起来确实很有趣,危险和爆炸性:
因此,您需要绕过Win32并调用本机API({Nt | Zw} CreateProcess).书"Windows Nt/2000 Native Api Reference"有一个例子"分叉Win32进程".这可能就是你所需要的.
我很好奇,但我怀疑Cygwin是否使用它.它可能存在,重申我对你的问题的回答 - 许多Unix应用依赖fork,Cygwin可能会提供它.只是不要指望奇迹,你必须通过重新编译包含其仿真层让Ruby知道Cygwin.