【发布时间】:2016-12-25 06:39:52
【问题描述】:
在 Common Lisp 中,在后台运行函数的最佳方式是什么?具体来说,我正在打电话
(trivial-shell:shell-command "<long and complicated command>"。此操作阻塞了约 10 秒,但我不关心输出,只是副作用 - 所以我希望它在后台运行,以便程序流程可以继续。我尝试将整个内容封装在 sb-thread:make-thread 中,但这似乎并没有什么不同。
如果可能的话,我会避免陷入各种复杂的线程。我在 64 位 Gentoo Linux 上运行 SBCL 1.1.18。
【问题讨论】:
-
Trivial-shell 是一个旧的 rudimentary 包。您可以尝试其他解决方案,例如launch-program in UIOP
-
“但这似乎没有什么不同。”。您安装的 SBCL 是否支持线程?检查
:sb-thread是否属于*features*(或简单地在REPL 中评估#+sb-thread t)。如果它返回 T,那么你应该能够启动线程。
标签: multithreading shell common-lisp sbcl