gpt4 book ai didi

clojure - 运行灯同时起作用

转载 作者:行者123 更新时间:2023-12-02 21:11:07 25 4
gpt4 key购买 nike

我有一些 CPU 密集型功能,我想并行运行。我应该使用什么并发原语?

使用代理和 future 是不值得的,因为为这些进程创建新线程的成本不合理。

我基本上想同时运行一些轻量函数,而不创建线程。我可以这样做吗?

谢谢,穆尔塔扎

最佳答案

你进行过基准测试吗?

无论如何,代理很可能是一个很好的解决方案,因为它们使用可以重复使用的固定大小的线程池(因此您不会不断创建新线程)。

我在我的机器上快速进行了基准测试,可以在 3 秒内完成超过一百万个代理调用:

(def ag (agent 0))

(time (dotimes [i 1000000] (send ag inc)))
=> "Elapsed time: 2882.170586 msecs"

如果代理仍然太重量级(不太可能?),那么您可能应该寻找一种方法将一组函数批量化为一个工作 block 。如果这样做,那么并发原语的开销将是最小的。

关于clojure - 运行灯同时起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14934952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com