Javascript 我如何知道我';您是否达到了节点中定义的线程限制?

Javascript 我如何知道我';您是否达到了节点中定义的线程限制?,javascript,node.js,multithreading,c++11,threadpool,Javascript,Node.js,Multithreading,C++11,Threadpool,我已将线程池的大小限制为25 process.env.UV_THREADPOOL_SIZE = 25; 如何知道所有线程在运行时都已耗尽 有没有办法发现所有的define线程在执行过程中都已耗尽 新的要求 我使用NoDE.js(Na)的本机抽象来调用C++函数。对于C++的所有请求::AsyncQueueWorker被创建。在这里,我想找出线程限制是否已用尽,然后添加一个安全系数。我分析了它的来源。不幸的是,现在无法获得已使用线程的数量。如果你只是想自己添加这个功能。你是想在nan还是js中实

我已将线程池的大小限制为25

process.env.UV_THREADPOOL_SIZE = 25;
如何知道所有线程在运行时都已耗尽

有没有办法发现所有的define线程在执行过程中都已耗尽 新的要求


我使用NoDE.js(Na)的本机抽象来调用C++函数。对于C++的所有请求::AsyncQueueWorker被创建。在这里,我想找出线程限制是否已用尽,然后添加一个安全系数。

我分析了它的来源。不幸的是,现在无法获得已使用线程的数量。如果你只是想自己添加这个功能。

你是想在nan还是js中实现

在Nan impl中:

你必须手动操作。维护一个映射,其中key为int,value为workAsyn。每次呼叫时按,工作完成时删除。对每个请求都这样做


将map的大小与定义的线程限制进行比较。

看起来此
集群
模块可能有助于

 var cluster = require('../')
    ,http = require('http');

 var server = http.createServer(function(req, res){
   res.writeHead(200);
   res.end('Hello World');
 });

 var workerCount = 0;

 cluster(server)
   .listen(3000)
   .on('worker',()=> {
     workerCount++;
     console.log('workerCount',workerCount)
   })
   .on('worker killed',()=> { 
     workerCount--; 
     console.log('workerCount',workerCount)
   })
还可以使用REPL“telnet”插件直接从
master
访问工作人员计数


您想知道是否所有线程都在“忙”执行某些任务吗?@Sid yes,如果它忙,或者stuck@Sid你能在这方面提供帮助吗?老实说,我现在不知道该怎么做,但只要有时间,我就会研究libuv,只是为了好玩:)当然,我会与社区分享我的发现。