例如,如果我有一个数据库,并且客户端代码以相当统一的方式查询数据库(通过包装器宏),我将如何将查询放入队列以便按顺序执行查询,最后一次完成后的下一次运行。
这是针对cl-mongo的实验性快速解决方法,看它是否解决了并行请求的问题。
答案 0 :(得分:2)
严格来说,由于Common Lisp标准没有指定任何线程功能,因此这个问题没有意义:)但是,如果您在代码中使用线程,则可以使用任何与实现无关的队列模块。默认选择可能是lparallel。您还可以使用实现提供的某些队列(很多都可以)。例如,SBCL的sb-concurrency:queue非常简单易用。
答案 1 :(得分:0)
这听起来像一个简单的锁可能会帮助你。这对于bordeaux-threads:with-lock-held
来说是一个简单的用例。