Racket支持多线程吗?

man*_*gpo 6 multithreading racket

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

Chr*_*ung 5

不要那样做

球拍确实通过期货和地方提供并行性,但是它们不提供(不受限制的)共享内存空间。如果要将数据从一个线程发送到另一个线程,请使用位置通道。

正如格雷格·亨德肖特(Greg Hendershott)所指出的那样,您可以通过场所频道发送共享矢量,该场所提供了共享空间供使用。(但这与共享所有内存引用不同,这是熟悉Java语言的线程可能会期望的。而后者就是我的“不这样做”所指的。)

如果您真的想使用类似pthread的线程,Guile会提供它们,但是您将不再使用Racket。;-)

  • 是。只是想指出,可以通过通道发送的一件事是共享内存对象。好主意吗?通常不是。如果您确实需要,可用吗?是。IOW我同意关于XY问题。 (2认同)