Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Racket中共享资源机制的名称_Racket - Fatal编程技术网

Racket中共享资源机制的名称

Racket中共享资源机制的名称,racket,Racket,我可以在邮件列表上问这个问题,但这样的话,答案将被存档供子孙后代使用 我似乎记得Racket中有一组原语,允许在流程级别共享资源。例如,假设有一个(非Racket)共享库,其初始化生成一个用于与之通信的唯一令牌(我知道这是个坏主意)。与需要访问它的所有线程共享此信息的最佳方式是什么 非常感谢 编辑:很明显,我在解释自己方面做得非常糟糕。这里的基本问题是,我有一个在init时间运行的DrRacket工具,以及一个在用户的事件空间中运行的用户线程,挑战在于将一个值传递给另一个。一个明显但奇怪的方法是

我可以在邮件列表上问这个问题,但这样的话,答案将被存档供子孙后代使用

我似乎记得Racket中有一组原语,允许在流程级别共享资源。例如,假设有一个(非Racket)共享库,其初始化生成一个用于与之通信的唯一令牌(我知道这是个坏主意)。与需要访问它的所有线程共享此信息的最佳方式是什么

非常感谢

编辑:很明显,我在解释自己方面做得非常糟糕。这里的基本问题是,我有一个在init时间运行的DrRacket工具,以及一个在用户的事件空间中运行的用户线程,挑战在于将一个值传递给另一个。一个明显但奇怪的方法是改变所有DrRacket程序的“run”按钮的行为。另一种方法是


好的,也许正确的问题是,是否有一种简单的方法可以让模块的所有实例化共享一个可变框。

您可能会想到。例如,它用于避免多次初始化OpenSSL库;请参阅文件末尾附近的
openssl/mzssl.rkt

这是自定义端口吗?当我(多次)遇到这个问题时,我会使用您的“极端回退位置”,让某种类型的主机来管理流程,或者是线程本身,或者是创建线程来处理通信的某种对象,这取决于我需要同步还是异步行为(我必须在同一个系统上处理这两个问题,为不同硬件的多个不同部分编写接口).如果有更好的解决方案,我会大喜过望的。不…有一件事!它叫什么!不是水管工,不是管理员,也不是保安…grr.虽然…听起来你的问题可能与我的不同。你如何在DrRacket事件空间和用户的事件空间之间共享对象?这是我的问题。我一定是误解了ng你,因为这不是默认行为吗?也就是说,如果你有一些变量
共享令牌
,你在它的作用域中生成的任何线程都可以读取或设置它。我缺少什么?或者你在使用单独的
位置
吗?在这种情况下,你可能正在寻找
共享字节
。是的!这就是我所想的。不是然而,从我的角度来看,我觉得一定有比沉浸在“空虚”中更好的方式world.Hmm.@JohnClements,如果你只是想要一个DrRacket工具为用户land提供额外的服务,那么看看RackUnit工具在
pkgs/RackUnit plugin lib/RackUnit/tool.rkt中的工作方式,这只会使它们在一个名称空间中可用,在第0阶段,但在实践中可能已经足够了。