Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/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
Ocaml Lwt的意思是;轻量螺纹“;?_Ocaml_Ocsigen - Fatal编程技术网

Ocaml Lwt的意思是;轻量螺纹“;?

Ocaml Lwt的意思是;轻量螺纹“;?,ocaml,ocsigen,Ocaml,Ocsigen,我一直在测试ocsigen,它使用Lwt。我猜Lwt的意思是“轻量线”,对吗?如果是这样,我们怎么能称之为“轻量” 似乎Lwt使用的是操作系统的线程,它不轻(与Erlang和Haskell相比) 请给我点灯,谢谢 是的,Lwt意味着轻量级线程,Lwt的线程是轻量级的。Lwt有一个协作线程模型,只有一个Lwt线程在一个系统线程上同时运行,直到它明确地产生控制。您有责任确保您的计算最终产生结果,否则其他lwt线程可能永远不会运行 然而,Lwt也有一个用于执行阻塞系统调用或委派长时间运行的函数的方法,

我一直在测试ocsigen,它使用Lwt。我猜Lwt的意思是“轻量线”,对吗?如果是这样,我们怎么能称之为“轻量”

似乎Lwt使用的是操作系统的线程,它不轻(与Erlang和Haskell相比)


请给我点灯,谢谢

是的,Lwt意味着轻量级线程,Lwt的线程是轻量级的。Lwt有一个协作线程模型,只有一个Lwt线程在一个系统线程上同时运行,直到它明确地产生控制。您有责任确保您的计算最终产生结果,否则其他lwt线程可能永远不会运行

然而,Lwt也有一个用于执行阻塞系统调用或委派长时间运行的函数的方法,这样它们就不会阻塞整个系统并阻止其他Lwt线程运行

你可以在论文中找到更多关于Lwt的模型和实现的信息(你可以在原作者的网页上找到)

[Lwt]提供非常轻量级的协作线程``启动“”线程是一个非常快速的操作,它不需要新堆栈、新进程或其他任何东西。此外,上下文切换非常快。事实上,这非常简单,我们将为每个系统调用启动一个线程。组成协作线程将允许我们编写高度异步的程序