gpt4 book ai didi

haskell - 如何将 TChan 邮箱附加到线程并使用套接字接收/发送消息?

转载 作者:行者123 更新时间:2023-12-04 20:19:17 25 4
gpt4 key购买 nike

我想为线程手动创建 TChan 邮箱,其中传入的消息/网络数据包与来自本地线程的消息收集在同一队列中。

我不确定这里典型的 Haskell 方法是什么。我怎么能写从例如一个套接字到一个 TChan 邮箱?

那么它会是一个具有多个独立队列的邮箱吗?或者确实有几个邮箱?

我查看了 epass但还没试过。尽管我认为我想做的事情应该是可能的,但我并没有真正让我开始的详细想法。有没有人有类似的代码示例?

最佳答案

事实上,我怀疑你可能想得太多了。 TChan是一个非常简单的抽象,它本身只是一个惰性的数据结构。如果您想使用一个,只需让线程读/写使用它即可。

因此,要连接套接字,您可以简单地创建轮询套接字并将其中的任何内容写入 TChan 的代码。 .把它放在一个无限循环中,然后把它卷起来让它飞起来。 Haskell 的线程非常轻量级,不变性意味着并发问题大多不存在,所以除了小心不要使用阻塞 FFI 调用(这可能是套接字的一个问题,所以阅读文档)没有理由犹豫使用线程当他们说得通的时候。

如果你真的想要比这更高级的东西并找到一个可以工作的图书馆,也许 epass ,那么您真正想要的是该特定库的示例代码。

哦,对于它的值(value) - 实现 TChan本质上是一个由 TVar 组成的链表s 有两个引用,仅此而已。阅读将头指针向前移动,为 TChan 的任一副本留下较早的单元格。或垃圾收集器查找,并写入在尾指针处创建一个新单元格。当然,所有这些都是在 STM 事务中完成的。

关于haskell - 如何将 TChan 邮箱附加到线程并使用套接字接收/发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8478337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com