我试图了解 R 多核包实现的分叉系统。包的例子是:
p <- fork()
if (inherits(p, "masterProcess")) {
cat("I’m a child! ", Sys.getpid(), "\n")
exit(,"I was a child")
}
cat("I’m the master\n")
unserialize(readChildren(1.5))
但粘贴到 R 交互式控制台时似乎不起作用。有谁有使用 fork() 与 R 多核或并行包的示例吗?
The fork
多核包中的示例“适合我”;尝试example(fork)
。 fork 仅在非 Windows 系统上受支持。
我认为等效函数parallel
are mcparallel()
分叉然后评估表达式,并且mcollect()
完成后检索结果。所以
id = mcparallel({ Sys.sleep(5); TRUE })
立即返回,但进程正在运行,并且
mccollect(id)
5 秒后返回 TRUE。 fork进程和master进程之间除了收集之外没有任何通信;使用例如套接字来实现双向通信会很有趣并且不太具有挑战性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)