gpt4 book ai didi

multithreading - Racket 支持多线程吗?

转载 作者:行者123 更新时间:2023-12-04 15:11:06 24 4
gpt4 key购买 nike

我想在 Racket 中编写一个多线程程序,它实际上利用多个进程共享内存空间,如 C 中的 pthread。Racket 提供了“线程”,但它只使用一个进程来执行多个线程。它还提供了通过在多个进程上运行的命令行执行新程序的“子进程”,但这些程序不能共享相同的内存空间。

最佳答案

不要那样做。

Racket 确实提供parallelism via futures and places ,但它们不提供(不受限制的)共享内存空间。如果要将数据从一个线程发送到另一个线程,请使用位置 channel 。

正如 Greg Hendershott 所指出的,您可以通过一个地方 channel 发送一个共享向量,它提供了一个共享空间来使用。 (但这与共享所有内存引用不同,这是熟悉 Java 样式线程的人可能会期望的。后者是我的“不要这样做”所指的内容。)

如果你真的想使用类似 pthread 的线程,Guile does provide them ,但是您将不再使用 Racket。 ;-)

关于multithreading - Racket 支持多线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24421233/

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