Javascript 我如何知道我';您是否达到了节点中定义的线程限制?
我已将线程池的大小限制为25Javascript 我如何知道我';您是否达到了节点中定义的线程限制?,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中实
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,只是为了好玩:)当然,我会与社区分享我的发现。