gpt4 book ai didi

javascript - Node.js 和线程

转载 作者:搜寻专家 更新时间:2023-11-01 00:25:37 25 4
gpt4 key购买 nike

我正在开发一个完全非阻塞的 node.js 应用程序。

但是有一些 CPU 密集型函数:

  • CryptoJS.AES 解密/加密
  • 创建uuid
  • 从数据中创建内容

现在我找到了一个模块来使用线程从 CPU 密集型任务中卸载事件循环: node-webworker-threads

我现在应该创建:

  1. 在应用启动时:每个函数一个线程,因此 AES.decrypt 是一个线程,AES.encrypt 也是一个线程,等等。
  2. 在应用启动时:每个函数一个线程池? (有多少个线程?每个 CPU 核心 1 个?)
  3. 执行时:进入每个函数时创建一个新线程,并在完成后销毁它?

线程是我还没有完全理解的东西..

最佳答案

这实际上取决于您的应用程序。如果您使用固定大小的线程池,如果请求数 > 可用线程数,您将不得不实现一个队列,这可能会导致一些拥塞。

最好的方法(当然在我看来)是为每个请求生成一个新线程,处理 AES、UUID 和数据。也就是说,每个请求一个线程执行所有计算。当一切都完成后,从线程返回结果并杀死它。

这当然可能会在高负载服务器上产生许多线程;但会让你的事件循环保持清晰。

编辑:This thread您可能会感兴趣。

关于javascript - Node.js 和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19350909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com