对于排队执行函数调用,最简单的Common Lisp习惯用法是什么?

时间:2015-01-29 11:42:13

标签: common-lisp sbcl

例如,如果我有一个数据库,并且客户端代码以相当统一的方式查询数据库(通过包装器宏),我将如何将查询放入队列以便按顺序执行查询,最后一次完成后的下一次运行。

这是针对cl-mongo的实验性快速解决方法,看它是否解决了并行请求的问题。

2 个答案:

答案 0 :(得分:2)

严格来说,由于Common Lisp标准没有指定任何线程功能,因此这个问题没有意义:)但是,如果您在代码中使用线程,则可以使用任何与实现无关的队列模块。默认选择可能是lparallel。您还可以使用实现提供的某些队列(很多都可以)。例如,SBCL的sb-concurrency:queue非常简单易用。

答案 1 :(得分:0)

这听起来像一个简单的锁可能会帮助你。这对于bordeaux-threads:with-lock-held来说是一个简单的用例。