Node.js和线程

xrD*_*DDD 2 javascript web-worker node.js

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

但是有一些CPU密集型功能:

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

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

我现在应该创建:

  1. 在应用程序启动时:每个函数一个线程,因此AES.decrypt是一个线程,AES.encrypt也是如此.
  2. 在app boot:每个函数一个线程池?(多少个线程?每个CPU核心1个?)
  3. 在执行时:每个函数进入时都有一个新线程,并在完成后将其销毁?

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

Eri*_*ric 5

这真的取决于你的应用程序.如果使用固定大小的线程池,则必须实现队列,如果请求数>可用线程数,这可能会导致一些拥塞.

最好的方法(在我看来当然)是为每个请求生成一个新线程,它处理AES,UUID和数据.也就是说,每个请求执行所有计算的一个线程.完成所有操作后,返回线程中的结果并将其终止.

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

编辑:这个帖子可能对你有意思.