我一直想提高我对NoDEJs的知识,所以我想我会写一个C++插件。在我与Node的经验中,我发现现有的线程包具有简单的进程,使用寿命短,在单独的线程中运行非常复杂。
我不知道我是否遗漏了一些使它过度复杂化的重要内容,但我有一个应用程序,我想在服务器上裁剪几百个图像(一个相对较短的过程,但仍然足够长,以阻止事件循环并导致传入请求出现问题)。为此,我使用了子进程包,但仍然必须创建一个包含裁剪代码的单独文件,并找出如何序列化图像并将其作为消息发送。
我想我会尝试实现一个节点包,它包含一个线程对象,允许使用类似promise语法的c ish线程。
function doWork(arg) {
// something that takes awhile
}
function TenSecondProcess(arg1, arg2) {
return new Thread(() => {
return doWork(arg1) + doWork(arg2);
}
}
function main() {
var a = 25;
var b = 21;
TenSecondProcess(a, b).then((result) => {
console.log(result);
}.catch((err) => {
console.error(err);
}
}
我还考虑在对象上实现一个函数,该函数将阻塞直到为嵌套线程或不使用回调/承诺范式的javascript代码计算值。
var thread = TenSecondProcess(a, b);
// other work
var result = thread.result();
我在这方面的经验是有限的,所以我发表这篇文章是为了反馈这个想法的有用性,并提出修改建议。
提前谢谢。