【问题标题】:How to synchronously execute an Lwt thread如何同步执行 Lwt 线程
【发布时间】:2025-12-24 04:25:14
【问题描述】:

有什么方法可以同步执行一个用 Lwt 库制作的线程吗?

具体来说,我正在尝试向服务器运行一系列发布请求,以计算一些值并返回结果。

根据对此问题提供的答案:

How do I make a simple GET request in OCaml?

我可以使用低级方法(套接字)或使用 Cohttp 库来实现。 低级方法的优点是直接和直接,但我宁愿坚持使用 Cohttp(不需要读/写循环等)。不幸的是,我对 Lwt 完全陌生,并且基于: https://mirage.io/wiki/tutorial-lwt 我知道从a ta 获得结果的唯一方法是运行Lwt_main.run,这应该是在顶层调用的,这对我来说不是一个选项。

TL:DR

有什么方法可以得到结果:

Client.get (Uri.of_string "http://localhost:8080/res")

不调用Lwt_main.run 或者为每个请求调用Lwt_main.run(代码深处)不是那么坏的主意吗?

【问题讨论】:

    标签: ocaml synchronous ocaml-lwt


    【解决方案1】:

    您可以在程序深处调用Lwt_main.run,前提是该调用未嵌套在对Lwt_main.run 的外部调用中。听起来它不会嵌套在您的案例中,因此您可以在发出请求的地方调用它。

    【讨论】: