首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Lwt的意思是“轻量级线程”吗?

Lwt的意思是“轻量级线程”吗?
EN

Stack Overflow用户
提问于 2012-08-08 08:43:39
回答 2查看 1K关注 0票数 8

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

Lwt似乎正在使用OS的线程,这不是轻量级的(与Erlang和Haskell相比)。

请给我点颜色看看,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-08 09:33:42

documentation page for Lwt说:

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

票数 8
EN

Stack Overflow用户

发布于 2012-08-08 09:26:52

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

但是,Lwt也有一个pool of system threads,用于执行阻塞系统调用或委托长时间运行的函数,这样它们就不会阻塞整个系统并阻止其他lwt线程运行。

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

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11856133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档