0

我正在寻找一个将 python 多处理(即进程池/线程池、作业队列等)与 hylang 一起使用的示例。

4

2 回答 2

2

文档中的第一个示例multiprocessing可以直译为 Hy,如下所示:

(import multiprocessing [Pool])

(defn f [x]
  (* x x))

(when (= __name__ "__main__")
  (with [p (Pool 5)]
    (print (.map p f [1 2 3]))))
于 2019-08-03T14:29:52.087 回答
0

请注意,直接翻译在 macOS 上会遇到问题(官方不支持,但大多数情况下仍然有效):Hy 设置sys.executable为 Hy 解释器,并multiprocessing依赖该值来启动新进程。您可以通过调用来解决该特定问题(multiprocessing.set_executable hy.sys_executable),但随后它将无法解析包含 Hy 代码本身的文件,由于某种原因它在子进程中再次解析。因此,对于在 Mac 上本地运行的 Hy 使用多处理似乎没有一个好的解决方案。

我想这就是我们拥有 Docker 的原因。

于 2021-08-25T23:55:04.980 回答