nodejs 与运行 libevent 有何不同?
Posted
技术标签:
【中文标题】nodejs 与运行 libevent 有何不同?【英文标题】:How is nodejs different from running libevent? 【发布时间】:2011-03-17 00:56:28 【问题描述】:我很好奇是什么让 nodeJS 获得了它现在获得的超级并发性。我并没有真正用过这两个,只是在空闲时间玩过。
听起来像是 node 承诺的 1000 个连接,您可以设置它,即使使用 libevent,您也可以做到这一点,比如在 C++ 中,不是吗?
【问题讨论】:
【参考方案1】:当然可以。实际上,node.js 是使用libev 实现的,这是一个类似于 libevent 的事件库。我认为 node.js 与在 C++ 中滚动您自己的事件驱动服务器相比的主要优势在于它非常易于使用,并且非常容易让服务器快速启动并运行,而无需自己编写所有基于事件的详细信息。
【讨论】:
我唯一要补充的是,在 C++ 中,您可以编写一些使用共享内存数据结构的多线程代码。在 NodeJS 中,这几乎是不可能的,因为 webworkers 目前基于单独的进程。因此,如果您有一些 CPU 密集型计算使用巨大的(比如说 1GB)共享内存结构,C++ 可能更适合。但在几乎所有其他方面,NodeJS 的易于开发和可维护性都胜过 C++。以上是关于nodejs 与运行 libevent 有何不同?的主要内容,如果未能解决你的问题,请参考以下文章
libevent 是不是允许在不同的线程中运行定时器/io 的回调?