首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >异步编程如何在单线程编程模型中工作?

异步编程如何在单线程编程模型中工作?
EN

Stack Overflow用户
提问于 2012-01-24 13:38:43
回答 1查看 19.7K关注 0票数 70

我仔细阅读了node.js的细节,了解到它支持异步编程,尽管本质上它提供了一个单线程模型。

在这种情况下,如何处理异步编程?是不是就像运行时自己创建和管理线程,但是程序员不能显式地创建线程?如果有人能给我一些资源来了解这一点,那就太好了。

EN

回答 1

Stack Overflow用户

发布于 2012-01-24 13:47:05

Ryan说得最好: sync/async与单线程/多线程是正交的。对于单线程和多线程的情况,有一个使用Reactor Pattern调用已注册回调的主事件循环。对于单线程情况,回调是在主线程上顺序调用的。对于多线程的情况,它们是在单独的线程上调用的(通常使用线程池)。这实际上是一个存在多大争用的问题:如果所有请求都需要对单个数据结构(比如订阅者列表)进行同步访问,那么使用多线程的好处可能会减少。它依赖于问题。

就实现而言,如果框架是单线程的,那么它很可能使用poll/select系统调用,即操作系统正在触发异步事件。

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

https://stackoverflow.com/questions/8982489

复制
相关文章

相似问题

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