首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >nodejs怎么多线程?

nodejs怎么多线程?

提问于 2018-03-25 15:51:29
回答 2关注 0查看 185

如果我理解正确的话,那么Node JS是非block的......所以不是等待数据库或其他进程的响应,而是转移到其他进程并稍后再进行检查。

它是单线程的。

所有这一切意味着给定的节点JS过程可以完全有效地利用单个CPU内核,但它不会使用机器上的任何其他内核,因为它一次不会使用多个内核。

这当然意味着其他CPU仍然可以被其他进程用于SQL数据库或其他有意分离的CPU重子程序,只要它们是独立的进程。

我的理解正确吗?

回答 2

全球资讯翻译官

回答已采纳

发布于 2018-03-26 00:35:22

非常正确。node.js服务器有一个内部线程池,因此它可以执行block操作并在事情完成时用回调或事件通知主线程。

所以我想它会限制使用另一个线程池的核心,例如,如果你做了一个非block的文件系统读取,这可能是通过告诉线程池中的线程执行读取和设置回调时实现的它的完成意味着读取可能发生在不同的线程/核心上,而主要的node.js程序正在做其他事情。

但是从node.js的角度来看,它完全是单线程的,不会直接使用多个核心。

壹捌柒肆

发布于 2018-03-26 00:58:53

这篇文章中的一段:

Apache是多线程的:它在每个请求(或进程,它依赖于conf)生成一个线程。可以看到,随着并发连接数量的增加,以及需要更多的线程来服务多个同期客户端,同时这种开销是很消耗内存的。Nginx和Node.js不是多线程的,因为线程和进程占用大量内存。它们是单线程的,但基于事件。这通过处理单个线程中的许多连接,消除了数千个线程/进程创建的开销。

和开发者交流更多问题细节吧,去 写回答
相关文章
nodejs 多线程支持
1、类似于cluster的多进程模式需要判断当前是否主进程,这边也提供了类似的api。通过isMainThread即可。
ACK
2020/01/14
1.1K0
nodejs 多线程支持
怎么卸载nodejs(nodejs mongodb)
Node.js是一个JavaScript运行环境,可以使JavaScript这类脚本语言编写出来的代码运行速度获得极大提升,那么安装后该如何卸载呢?
全栈程序员站长
2022/08/02
6.9K0
nodejs多线程的探索和实践
需求中有以下场景 1 对称解密、非对称解密 2 压缩、解压 3 大量文件的增删改查 4 处理大量的字符串,解析协议 上面的场景都是非常耗时间的,解密、压缩、文件操作,nodejs使用了内置的线程池支持了异步。但是处理字符串和解析协议是单纯消耗cpu的操作。而且nodejs对解密的支持似乎不是很好。我使用了纯js的解密库,所以无法在nodejs主线程里处理。尤其rsa解密,非常耗时间。
theanarkh
2020/08/13
5270
nodejs多线程的探索和实践
多线程?怎么用?
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。
故里
2020/11/25
2K0
多线程?怎么用?
nodejs安装包安装教程_nodejs怎么下载安装
由于是通过msi格式安装的,所以启动路径会自动添加进path中,可以通过cmd直接掉用
全栈程序员站长
2022/09/20
2.2K0
nodejs安装包安装教程_nodejs怎么下载安装
《多线程系列一》线程是什么?怎么理解多线程!
线程是操作系统调度的最小单元,也叫轻量级进程。它被包含在进程之中,是进程中的实际运作单位。同一进程可以创建多个线程,每个进程都有自己独立的一块内存空间。并且能够访问共享的内存变量。
香菜聊游戏
2021/03/09
4600
Redis的多线程到底该怎么理解
作者:景同学 链接:https://juejin.cn/post/6928407842009546766
Coder的技术之路
2022/09/19
9630
Redis的多线程到底该怎么理解
【NodeJs】启动本地服务遭遇端口占用怎么办⁉️
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 写作背景:      在目前的众多前端工程化CLI中大多都提供在本地启动静态服务来辅助开发中页面的渲染,这些个CLI在遇到本地的端口占用的时候往往采用端口自增来重新启动服务。我相信这个现象在你开发项目的过程中也一定遇到过,如果没有遇到那你有没有发现控制台抛出包含“EADDRINUSE”的错误呢? 涉及知识点:      在你在
前端小鑫同学
2022/12/26
1.2K0
怎么利用多线程 LRU 刷新突破 MySQL 瓶颈?
在《MySQL 5.7: initial flushing analysis and why Performance Schema data is incomplete》中,我们看到InnoDB 5.7执行大量的单页LRU刷新,然而在共享的doublewrite buffer环节却又变成了串行模式。基于对5.6的经验判断,我们决定先挑战单页刷新这个问题。
wubx
2019/02/27
1.3K0
怎么利用多线程 LRU 刷新突破 MySQL 瓶颈?
怎么理解分布式、高并发、多线程?
当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?
Java学习123
2021/12/28
3370
idea怎么远程debug_idea 多线程调试
1,远程DEBUG的必要性 由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚至生产环境下出现bug的情况。一般情况下,生产环境可以采取的手段比较单一,即通过日志的方式获取运行中的环境上下文,分析日志文件并尝试重现bug。这会带来的问题还是不少的,首先,日志的分析是一项比较耗时的工作;其次,现有的日志记录不一定能反映出问题,你可能需要多次重复这个过程(分析日志->猜测问题->加日志->部署->获取日志)来慢慢逼近问题。倘若是测试环境,我们还多了一项可供选择的手段——远程调试——将程序在测试环境中以debug模式启动,在本机使用IDEA在工程中设置断点进行调试。 2,IDEA构建SpringBoot测试Demo 新建SpringBoot测试项目remote-debug,只需要web依赖支持即可;版本选用2.2.6.RELEASE(注意,别用2.5.1版本,有坑,亲测) pom.xml:
全栈程序员站长
2022/10/01
5210
idea怎么远程debug_idea 多线程调试
有了iron-node,调试Nodejs就是怎么so easy
全局安装 iron-node工具 cnpm install -g iron-node 运行iron-node iron-node ./build/dev-server.js 调试效果图
sam dragon
2018/01/17
7090
有了iron-node,调试Nodejs就是怎么so easy
NodeJS
一. 安装及概述 1. 概述: Node.js 不是一门新的语言,是一个JavaScript运行环境, 简单的说 Node.js 就是运行在服务端的 JavaScript。 2. 特点: 1).单线程 2).异步的非阻塞I/O 3).事件驱动 3. 使用场景: 1).后台开发 2).使用node的npm功能,方便的安装,删除,替换第三方模块 3).node的兼容性较好,Windows,Linux,MacOS均可以使用node环境,node从 0.6版本开始,只要装node,会顺带装npm 二. 模块 1. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Node环境中,一个.js文件就称之为一个模块(module)。 2. 好处: 最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Node内置的模块和来自第三方的模块。使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。 3. 注意: exports 和 module.exports 的使用 如果要对外暴露属性或方法,就用 exports 就行,要暴露对象(类似class,包含了很多属性和方法),就用 module.exports。
生南星
2019/07/22
2.9K0
nodejs-websocket代码nodejs版本
nodejs-websocket代码nodejs版本 function websocket(server) { var io = require('socket.io')(server); var Message = require('../models/message') var users = {} io.on('connection', function (socket) { //监听用户发布聊天内容 socket.on('message', funct
conanma
2022/01/04
2.8K0
Python多线程/多进程释疑:为啥、何时、怎么用?
本指南的目的是解释为什么在Python中需要多线程和多处理,何时使用多线程和多处理,以及如何在程序中使用它们。作为一名人工智能研究人员,我在为我的模型准备数据时广泛使用它们!
AiTechYun
2019/07/05
1.5K0
Python多线程/多进程释疑:为啥、何时、怎么用?
让人恶心的多线程代码,性能怎么优化!
Java 中最烦人的,就是多线程,一不小心,代码写的比单线程还慢,这就让人非常尴尬。
xjjdog
2022/12/22
7090
让人恶心的多线程代码,性能怎么优化!
Nodejs学习笔记(一)——初识Nodejs
前言:目前工作的分内之事相对较为单一,希望可以通过工作之余的时间给自己充充电,只是没有一个学伴或大神带,只能说是摸索着前进。起初准备好好研究下Spring这个框架,下载了源码,结合书籍准备一探究竟,看到了Spring如何加载bean,又如何转换成自己的数据格式等等,虽尚未涉及实战,倒算是对之前工作中遇到的一些困惑有所帮助。合计准备写一篇博客以示我的“大数据小世界”的博客还不至于长草太深,只是后来机缘巧合,想了解下关于爬虫一类的东西,Spring就先做搁置。   在度娘上搜索爬虫,铺天盖地的各色技术引入眼帘,
JackieZheng
2018/01/16
2.2K0
Nodejs学习笔记(一)——初识Nodejs
Linux多线程及多线程并发访问同一块内存的问题怎么解决
这篇文章主要介绍了Linux多线程及多线程并发访问同一块内存的问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux多线程及多线程并发访问同一块内存的问题怎么解决文章都会有所收获,下面我们一起来看看吧。
会长君
2023/04/25
7490
Nodejs学习笔记(1)——安装nodejs
    关于大名鼎鼎的Nodejs是什么就不用再介绍了,他的牛逼之处数都数不完——让javascript称霸全宇宙、将一个只用于前端的编程语言同时可以制霸前后端、让致力于前端开发的小哥又多了一项事业新增了一门手艺、亮瞎人的全异步事件驱动型架构(event-driven、non-blocking、scalability)。总的来说就是,学好Nodejs必须能够赚大钱迎娶白富美。
随风溜达的向日葵
2018/08/15
3.3K0
Nodejs学习笔记(1)——安装nodejs
linux安装nodejs环境_ubuntu安装nodejs
之前在安装nodejs踩了不少的坑,我结合了之前在网上其他人发的教程,做了补充优化。
全栈程序员站长
2022/09/30
11.9K1
linux安装nodejs环境_ubuntu安装nodejs

相似问题

nodejs怎么绑定域名?

11.5K

怎么安装NodeJS和NPM?

1301

怎么安装NodeJS和Express?

0232

请问nodejs怎么调用短信接口?

1709

nodejs+web签名怎么使用?

2551
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
平安资管 | 架构师擅长4个领域
擅长3个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档