- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图理解术语 lwt supported
.
所以假设我有一段连接数据库并写入一些数据的代码:Db.write conn data
.它还与 lwt 无关,每次写入将花费 10 sec
.
现在,我想使用 lwt。我可以像下面这样直接编码吗?
let write_all data_list = Lwt_list.iter (Db.write conn) data_list
let _ = Lwt_main.run(write_all my_data_list)
5
my_data_list
中的数据项,
将所有 5 个数据项按顺序还是并行写入数据库?
Using Lwt is very easy and does not cause troubles, provided you never use blocking functions (non cooperative functions). Blocking functions can cause the entre server to hang!
Lwt.return
使其成为
lwt support
?
最佳答案
是的,你的代码是正确的。 lwt supported
的原理代码中所有可能需要时间的东西都应该返回一个 Lwt 值。
关于Lwt_list.iter,您可以通过在iter_p
之间进行选择来选择您希望处理是并行的还是顺序的。和 iter_s
:
In iter_s f l, iter_s will call f on each elements of l, waiting for completion between each element. On the contrary, in iter_p f l, iter_p will call f on all elements of l, then wait for all the threads to terminate.
sleep
.
sleep
之前声明你进入了一个“合作点”。 .这就是为什么整个 Unix 库都被包装起来的原因,这样当你想做一个需要时间的操作(例如
write
)时,会自动到达一个合作点。
Lwt_unix.sleep
而不是
Unix.sleep
)
关于ocaml - 如何使某些东西支持 lwt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17422910/
我正在尝试使用 Lwt 编写一个终端应用程序。基本上,只要我的应用程序正在运行,我就需要使用 Lwt_io.read_line 观察终端的输入。 有没有比下面的(伪代码)更好的方法来在我的程序运行时实
有关 Ocaml Lwt 中该符号含义的任何建议: >>= 最佳答案 参见 API manual : val bind : 'a t -> ('a -> 'b t) -> 'b t bind t f
据我了解,LWT 插入始终以 SERIAL 一致性级别完成。如果为 true,这是否意味着读取作为 LWT 插入的行可以安全地以 ANY 的一致性级别读取? 换句话说,我假设 LWT 插入是完全一致的
这是一个使用 Unix 模块与子进程交互的简单程序。我只是启动一个 cat shell 命令,向它发送一个字符串并读回它: #load "unix.cma";; (* Needed if you ar
我想为一个简单的客户端尝试使用 Lwt_unix 模块,该客户端读取套接字中的数据,直到没有任何数据可读为止。有人告诉我 Lwt 创建非阻塞套接字,但使用我的代码,它仍然是阻塞的: open Lwt
我试图理解术语 lwt supported . 所以假设我有一段连接数据库并写入一些数据的代码:Db.write conn data .它还与 lwt 无关,每次写入将花费 10 sec . 现在,我
我有 6 个复制因子为 3 的节点集群。我使用普通一致性级别作为 QUORUM,串行一致性级别作为 SERIAL。 我有一个条件写入查询(IF EXIST)。如果我使用如下所示的 datastax j
我目前正在学习Lwt .我对使用异步进程用 OCaml 例程替换一些 shell 例程很感兴趣。 让我们看一下简化的第一次尝试,其中通过组合运行 cat 的两个线程来创建过滤器: let filter
我正在MirageOS(Unix)上用Ocaml开发一个Web服务,此刻我在Lwt.async()上遇到了一些麻烦。 Lwt文档指出以下内容: val async : (unit -> 'a t) -
运行 opam install cohttp不为我提供 cohttp.lwt在 findlib 中。我是否缺少使用 lwt 支持进行安装的命令行选项? 最佳答案 lwt是 cohttp 的可选依赖项.
我在通过 Godi 安装的 Ubuntu 上运行 Ocaml 3.12。 我正在浏览 Lwt tutorial .我已经启动了顶层并完成了(按照指示): # #use "topfind";; # #r
我有两个表,模型如下: CREATE TABLE IF NOT EXISTS INV ( CODE TEXT, PRODUCT_CODE TEXT, LOCATION_NUMBER TEX
(交叉发布到 lwt github 问题) 我已将我的用法归结为此代码示例,该示例将泄漏文件描述符。 假设你有: #require "lwt.unix" open Lwt.Infix let echo
可以像这样查看一个进程的所有线程的优先级和调度策略: ps H -o 'tid pri cls comm' PID 如何从命令行更改单个线程的优先级? 像renice 和chrt 这样的命令似乎影响了
我在 utop 上调用 require "lwt.simple-top";; 并尝试一个简单的示例,但它无法找到运算符 >>=。 最佳答案 #require 是一个顶层指令,它将库代码链接到顶层。它不
我正在尝试运行 LWT在我的 Mac 上并为此安装了 MAMP。我关注了these instructions ,但是当我尝试访问 http://localhost:8888/lwt/ 时,我得到: T
Cassandra 轻量级事务是否使用隐含的 SET,因此在主键方面不能有 IF 部分? 我问是因为 Datastax Cassandra Java 驱动程序(版本 2.1.5)在我准备语句时抛出 I
我正在尝试使用js_of_ocaml和node.js。如您所知,node.js 大量使用回调来实现异步请求,而无需引入显式线程。 在 OCaml 中,我们有一个非常好的线程库 Lwt,带有非常有用的语
我是一名优秀的程序员,十分优秀!