Node.js 中多线程处理文件

2024-04-10

我需要从在线 url 读取文件并在多线程中处理它并将其写入另一个输出中。https://www.w3.org/TR/PNG/iso_8859-1.txt https://www.w3.org/TR/PNG/iso_8859-1.txt我尝试过的解决方案: 如果集群是主集群 我根据 cpu 计数分叉了新线程,并在 for 循环外部读取文件。 我必须确保每个线程都有特定的行在输出文件中打印,因为不应重复同一行。

我不确定这是否是正确的方法。 请分享您的答案或建议。


您能否详细说明为什么您认为应该在不同的线程中处理某些内容?

请查看我关于类似问题的详细回复:如何真正在节点中使耗时的请求异步 https://stackoverflow.com/questions/54643945/how-to-truly-make-a-time-consuming-request-async-in-node/54644850

总结一下:

  • Node.JS 仅在一个线程(主线程)中执行您的 javascript 代码
  • 内置模块如fs, http, net等利用libuv工作线程在后台线程中处理 I/O
  • 第三方模块might做同样的事情,这取决于他们的实施
  • If you want your code to be executed in a background thread, you have 2 options:
    • 编写一个 C 包装模块,使用libuv工作线程来做这些事情
    • Use WorkerThreads在 Node.JS 10 中引入的 JavaScript 代码中(Docs https://nodejs.org/dist/latest-v10.x/docs/api/worker_threads.html),但请注意该模块的状态是实验性的尚未准备好投入生产

一般来说,我高度怀疑 you want自行使用线程。您的问题表明您想从网络服务器下载文件。可用模块(fs, request, http, ...) 已经使用后台线程进行 I/O,所以我不清楚除此之外还需要后台处理。

请澄清更多信息,或者考虑坚持使用可用的模块,以防您不需要“更多多线程”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js 中多线程处理文件 的相关文章

随机推荐

  • 我可以将 artifactId 转换为我的 Maven 原型中的类名前缀吗?

    我正在创建一个 Maven 原型 并在生成的项目中想要一个以生成的项目的工件 id 命名的类 工件 ID 的格式如下 the project name并且该类应命名为TheProjectNameMain 我尝试在我的archetype me
  • 将base64图像上传到亚马逊s3

    我在尝试将图像上传到 AWS S3 时遇到一些问题 似乎可以正确上传文件 但是每当我尝试下载或预览时 它都无法打开 目前 这是我正在使用的上传代码
  • Flutter Socket.listen()接收不完整数据

    使用套接字接收字符串数据 而且好像传输不完整 服务器发送大约 80 KB flutter 套接字有时接收 1 KB 有时接收 10 KB 左右 尝试了 onDone 处理程序 它是相同的 在接收到整个数据之前调用它 我还尝试将数据分成多个部
  • 将控制台输出重定向到单独程序中的文本框

    我正在开发一个 Windows 窗体应用程序 它需要我调用一个单独的程序来执行任务 该程序是一个控制台应用程序 我需要将标准输出从控制台重定向到程序中的文本框 我从我的应用程序执行程序没有问题 但我不知道如何将输出重定向到我的应用程序 我需
  • 如何查询 firestore() 的 graphQL 解析器?

    我将 GraphQL 应用程序与现有的 Firebase 项目结合起来 在获取查询以正确从 firestore 获取数据时遇到很多问题 到目前为止 我的突变工作正常 但是当我去查询数据时 我无法将 firestore get 快照转换为 g
  • html5 video safari 在播放前下载完整

    我想知道为什么我的 mp4 html5 视频不是 流式传输 而是等到完全下载后才开始在 safari 中播放 www pija se 我已经尝试过 QTIndexSwapper 但它说索引位于正确的位置 任何帮助表示赞赏 看起来 MOOV
  • heroku 上的 Gunicorn:绑定到本地主机

    我一直在关注教程https devcenter heroku com articles django declare process types with procfile https devcenter heroku com articl
  • 替换字符串中的特定单词 (Python)

    我想替换字符串句子中的单词 例如 What noun is verb 用实际名词 动词替换 包括 中的字符的正则表达式是什么 您不需要为此使用正则表达式 我会做 string What noun is verb print string r
  • Google Cloud SQL 连接到 flutter

    我在互联网上呆了 3 天 试图找到一些可以帮助我在 Google Cloud 和我的 flutter 应用程序上设置 PostreSQL 服务器的东西 无论是文档还是互联网上的任何地方都没有关于 flutter 应用程序如何连接 设置甚至在
  • AlarmManager 在模拟器中运行良好,但在真实设备中运行不佳

    这是我设置闹钟的代码 public void SetAlarm Context context int tag long time AlarmManager am AlarmManager context getSystemService
  • 将每 2 个 div 包裹在一个新的 div 中

    假设我有这个 div class somediv div div class somediv div div class somediv div div class somediv div div class somediv div div
  • Qt Designer 不加载我的自定义小部件插件

    我正在阅读 使用 Qt4 进行 C GUI 编程 一书 并且已经达到了将自定义小部件与 Qt Designer 集成的主题 我已经构建了那里概述的示例项目 图标编辑器插件 并且我得到了一个名为 libiconeditorplugin so
  • 如何强制执行新的空 EF 迁移?

    好的 所以我完全依赖我的迁移和种子代码来维护所有数据库结构和初始数据 因此 我面临的情况是 我在此版本中所做的所有更改都是直接在数据库 存储过程和更新 上进行的 并且 C 代码本身没有任何更改 问题是 由于我想使用新的迁移来执行这些数据库特
  • 生产中的 GWT 源映射

    GWT 支持超级开发模式下的源映射 不幸的是 尽管我在 gwt xml 文件中添加了源映射选项 但它们似乎无法在生产模式下工作 如何在那里启用它们 看看 GWT 自己的网站是如何做到这一点的 https gwt googlesource c
  • 如何离线安装Flask? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我已经在我的电脑上下载了 Flask 然后我就断开了连接 现在我需要在没有互联网连接的情况下安装 Flask 离线安装 Flask 还需要什
  • Wildfly 中有多个持久单元?

    Wildfly 9 0 2 应用程序中是否可以有两个持久性单元 我收到 WFLYJPA0061 未指定持久性单元名称 并且应用程序部署部署 jasper web war 中有 2 个持久性单元定义 要么将应用程序部署更改为只有一个持久性单元
  • Java 中使用分隔符“.”的分词问题

    我需要使用分隔符分割文本 例如我想要这个字符串 Washington is the U S Capital Barack is living there 分为两部分 Washington is the U S Capital Barack
  • Spring Security 中具有密码授予的 oAuth2 客户端

    我正在使用一组受 oAuth2 保护的服务 目前的工作原理如下 客户端使用用户名和密码登录 我用这些换取代币 我将令牌保留在会话中 并在每次想要调用服务时提交它 它可以工作 但问题是我完全手动执行此操作 而没有使用 Spring Secur
  • 使用命令中断循环

    在我的 Python Discord Bot 中 我想创建一个命令 这会导致循环运行 当我输入第二个命令时 循环应该停止 那么粗略地说 client event async def on message message if message
  • Node.js 中多线程处理文件

    我需要从在线 url 读取文件并在多线程中处理它并将其写入另一个输出中 https www w3 org TR PNG iso 8859 1 txt https www w3 org TR PNG iso 8859 1 txt我尝试过的解决