Uma*_*ane 34 javascript node.js
nodejs多线程..
天气可以在nodejs中使用多头?如是.在nodejs中使用多重头的优点和缺点是什么?哪些模块可以在nodejs中实现多线程?我是nodejs的新手,我从许多博客中读到,说节点是单线程的.我知道java多线程但我需要知道天气是否有可能在节点中.
Lid*_*uel 67
是和否.让我们从头开始.为什么NodeJs是单线程的,这里解释为什么Node.js是单线程的?
Node.js本身是多线程的 - I/O和其他此类操作从线程池运行 - 由Node.js执行的JavaScript代码在所有实际应用中运行在单个线程中.这不是Node.js本身的限制,而是V8 JavaScript引擎和JavaScript实现的一般限制.
Node.js包括用于群集多个Node.js进程的本机机制,其中每个进程在单独的核心上运行.但是,该集群机制不包括任何本机路由逻辑或工作者之间的共享状态.
一般而言,更明确的说法是,每个node.js进程都是单线程的.如果你想要多个线程,你也必须有多个进程.例如,您可以使用子进程,这在http://nodejs.org/api/child_process.html中进行了描述.只是为了您的信息,请查看本文,非常有启发性和写得很好,如果您想使用child_processes,可能会帮助您 - https://blog.scottfrees.com/automating-ac-program-从-一个节点JS-web应用程序
尽管如此,您可以使用C++和本地nodejs C++开发实现一种多线程.
首先看看这些答案,可能他们会帮助你,
https://bravenewmethod.com/2011/03/30/callbacks-from-threaded-node-js-c-extension/
当然,您可以找到并利用许多提供"多"线程功能的节点插件:https://www.npmjs.com/search ? q = thread
此外,您可以查看JXCore https://github.com/jxcore/jxcore JXCore是Node.js的分支,并允许Node.js应用程序在同一进程中的多个线程上运行.所以很可能JXCore是一个适合你的解决方案.
"在Node.js中使用多线程有哪些优点和缺点?"
这取决于你想做什么.如果您正确地利用和使用Node.js源,并且您的"多" - 线程插件或进程或其他任何东西,不会"破解"或滥用来自V8或Node.js核心的任何东西,这没有任何缺点!
正如在每个答案中一样,正确的答案是"使用正确的工具来完成工作".当然,由于节点是按设计单线程的,因此您可以有更好的多线程方法.
许多人使用的技术是在C++,Java,Python等中创建多线程应用程序,然后通过自动化和Node.js child_process运行它(第三方应用程序与自动化异步运行,你有更好的性能(例如C++应用程序),您可以在Node.js应用程序中发送输入并获取输出.
缺点多线程Node.js
检查一下:https://softwareengineering.stackexchange.com/questions/315454/what-are-the-drawbacks-of-making-a-multi-threaded-javascript-runtime-implementat
请记住,如果你想通过修改它来在Node.js中创建一个纯多线程环境,我认为由于复杂性,这将是困难的,风险很大,而且你必须始终与每个新的V8或Node保持同步释放可能会影响这一点.
希望这可以帮助.
不,您不能在node.js中使用线程。它使用代码执行的异步模型。在异步模型的背后,节点本身使用线程。但据我所知,没有附加库就无法在应用程序中访问它们。
使用异步模型,您实际上不需要线程。这是一个简单的例子。通常,在多线程环境中,您将在每个线程中运行网络请求,以不阻止主线程中代码的执行。使用异步模型,那些请求不会阻塞主线程,而仍会在其他线程中执行,只有这对您而言是隐藏的,以使开发过程变得简单明了。
还可以通过bazza 查看此评论。
| 归档时间: |
|
| 查看次数: |
68972 次 |
| 最近记录: |