用 Zig 实现一个简单的任务队列

发了这条动态后我就开始手搓自己的 Coding Agent 了,选择的编程语言是 Zig,目标是制作一个内存占用极小的 Coding Agent CLI 工具。 在实现工具调用的时候,我希望工具可以在一定程度上被并发调用,我选择的方案是任务队列。当 LLM 生成工具调用的时候,就入队一个工具调用请求,固定数量的 Consumers 会分别从各自的调用循环中取出队列中的一个工具调用任务,并在单独的线程中执行工具代码。 实现任务队列的难点在于我一开始带入了 JS/C# 的编程习惯,例如在 C# 中,我们可以很容易地想到利用 Queue 跟 TaskCompletionSource 实现让队列的 Consumer 来唤醒等待任务执行完成的 Producer。但是 Zig 中手动管理内存让这里的情况变得复杂了,因为 Producer 跟 Consumers 同时持有…

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论