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

Common lisp 什么';对于函数调用的排队执行,最简单的公共Lisp习惯用法是什么?,common-lisp,sbcl,Common Lisp,Sbcl,例如,如果我有一个数据库,并且客户机代码以一种相当统一的方式(通过包装器宏)查询数据库,我将如何将查询放入队列中,以便按顺序执行查询,在最后一个查询完成后的下一次运行 这是cl mongo的一个实验性快速解决方案,看看它是否解决了并行请求的问题。这听起来像是一个简单的锁可能会对您有所帮助。对于波尔多线程来说,这将是一个简单的用例:严格来说,使用锁保持的,因为公共Lisp标准没有指定任何线程功能。这个问题没有意义:)但是,如果您在代码中使用线程,您可以使用任何与实现无关的队列模块。默认的选择可能是

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


这是cl mongo的一个实验性快速解决方案,看看它是否解决了并行请求的问题。

这听起来像是一个简单的锁可能会对您有所帮助。对于
波尔多线程来说,这将是一个简单的用例:严格来说,使用锁保持的

,因为公共Lisp标准没有指定任何线程功能。这个问题没有意义:)但是,如果您在代码中使用线程,您可以使用任何与实现无关的队列模块。默认的选择可能是。您还可以使用您的实现提供的一些队列(许多是这样做的)。例如,SBCL的使用非常简单和直接。

我最终使用了sb线程/sb并发,尽管我最初实际上是在寻找一个工作示例。这一页虽然过时,但为我实现一组工作功能提供了有用的见解。另外,我想指出,将请求排队确实解决了我在cl mongo中遇到的问题。