文件名称:cl-chan:一个简单的类似golang的通道库
文件大小:19KB
文件格式:ZIP
更新时间:2024-05-07 05:06:02
CommonLisp
克劳·陈 描述 cl-chan提供了类似于未缓冲/缓冲通道的golang。 使用send或recv ,您可以向通道发送或接收值。 同样,通过select ,您可以随机收听频道中的事件。 它基于多线程库bordeaux bordeaux-threads ,起到类似于gorotine的作用。 笔记, 这个项目的灵感来自和 。 的utils的代码很多是从复制 ,如queues.lisp , threads.lisp , utils.lisp 。 我写cl-chan的原因是,作为我在cl世界中找到的唯一可用的CSP库, 测试用例可能会导致竞争状况,您可以参考此。 似乎很难修复它,因为它从不同的渠道中提取了很多东西。 所以我做了一个简单的工作。 我指的是项目。 但是我发现select的实现可能有一个问题(),所以我选择了的select实现。 另外,为了增加非阻塞发送和接收的功能,我重写
【文件预览】:
cl-chan-master
----cl-chan.asd(2KB)
----tests()
--------select.lisp(2KB)
--------channels.lisp(6KB)
--------setup-tests.lisp(702B)
----src()
--------select.lisp(7KB)
--------utils.lisp(4KB)
--------packages.lisp(222B)
--------queues.lisp(8KB)
--------threads.lisp(6KB)
--------buffered-channel.lisp(3KB)
--------unbuffered-channel.lisp(5KB)
--------abstract-channel.lisp(462B)
----README.org(4KB)
----.gitignore(61B)
----README.md(3KB)